diff --git a/api-list.json b/api-list.json index 45cf9d847b0..f2413250d59 100644 --- a/api-list.json +++ b/api-list.json @@ -3366,21 +3366,6 @@ "documentationLink": "https://cloud.google.com/iap", "preferred": true }, - { - "kind": "discovery#directoryItem", - "id": "ideahub:v1beta", - "name": "ideahub", - "version": "v1beta", - "title": "Idea Hub API", - "description": "This is an invitation-only API.", - "discoveryRestUrl": "https://ideahub.googleapis.com/$discovery/rest?version=v1beta", - "icons": { - "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", - "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" - }, - "documentationLink": "https://console.cloud.google.com/apis/library/ideahub.googleapis.com", - "preferred": true - }, { "kind": "discovery#directoryItem", "id": "identitytoolkit:v1", @@ -3561,6 +3546,21 @@ "documentationLink": "https://cloud.google.com/kms/", "preferred": true }, + { + "kind": "discovery#directoryItem", + "id": "language:v1beta1", + "name": "language", + "version": "v1beta1", + "title": "Cloud Natural Language API", + "description": "Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations, to developers.", + "discoveryRestUrl": "https://language.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/natural-language/", + "preferred": false + }, { "kind": "discovery#directoryItem", "id": "language:v1beta2", @@ -4882,6 +4882,21 @@ "documentationLink": "https://developers.google.com/apps-script/api/", "preferred": true }, + { + "kind": "discovery#directoryItem", + "id": "searchads360:v0", + "name": "searchads360", + "version": "v0", + "title": "Search Ads 360 Reporting API", + "description": "The Search Ads 360 API allows developers to automate downloading reports from Search Ads 360.", + "discoveryRestUrl": "https://searchads360.googleapis.com/$discovery/rest?version=v0", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/search-ads/reporting", + "preferred": true + }, { "kind": "discovery#directoryItem", "id": "searchconsole:v1", diff --git a/baremetalsolution/v2/baremetalsolution-api.json b/baremetalsolution/v2/baremetalsolution-api.json index 1e8d6341b74..414e0b2c7b0 100644 --- a/baremetalsolution/v2/baremetalsolution-api.json +++ b/baremetalsolution/v2/baremetalsolution-api.json @@ -1437,7 +1437,7 @@ } } }, - "revision": "20230104", + "revision": "20230113", "rootUrl": "https://baremetalsolution.googleapis.com/", "schemas": { "AllowedClient": { @@ -3237,6 +3237,10 @@ ], "type": "string" }, + "storageAggregatePool": { + "description": "Input only. Name of the storage aggregate pool to allocate the volume in. Can be used only for VOLUME_PERFORMANCE_TIER_ASSIGNED volumes.", + "type": "string" + }, "storageType": { "description": "The storage type for this volume.", "enum": [ @@ -3345,6 +3349,10 @@ "description": "Whether snapshots should be enabled.", "type": "boolean" }, + "storageAggregatePool": { + "description": "Input only. Name of the storage aggregate pool to allocate the volume in. Can be used only for VOLUME_PERFORMANCE_TIER_ASSIGNED volumes.", + "type": "string" + }, "type": { "description": "The type of this Volume.", "enum": [ diff --git a/baremetalsolution/v2/baremetalsolution-gen.go b/baremetalsolution/v2/baremetalsolution-gen.go index a9c927d6946..0051b05fc27 100644 --- a/baremetalsolution/v2/baremetalsolution-gen.go +++ b/baremetalsolution/v2/baremetalsolution-gen.go @@ -2620,6 +2620,11 @@ type Volume struct { // "UPDATING" - The storage volume is being updated. State string `json:"state,omitempty"` + // StorageAggregatePool: Input only. Name of the storage aggregate pool + // to allocate the volume in. Can be used only for + // VOLUME_PERFORMANCE_TIER_ASSIGNED volumes. + StorageAggregatePool string `json:"storageAggregatePool,omitempty"` + // StorageType: The storage type for this volume. // // Possible values: @@ -2715,6 +2720,11 @@ type VolumeConfig struct { // SnapshotsEnabled: Whether snapshots should be enabled. SnapshotsEnabled bool `json:"snapshotsEnabled,omitempty"` + // StorageAggregatePool: Input only. Name of the storage aggregate pool + // to allocate the volume in. Can be used only for + // VOLUME_PERFORMANCE_TIER_ASSIGNED volumes. + StorageAggregatePool string `json:"storageAggregatePool,omitempty"` + // Type: The type of this Volume. // // Possible values: diff --git a/chat/v1/chat-api.json b/chat/v1/chat-api.json index 252dc0e26a1..801911cea96 100644 --- a/chat/v1/chat-api.json +++ b/chat/v1/chat-api.json @@ -215,7 +215,7 @@ "members": { "methods": { "get": { - "description": "[Developer Preview](https://developers.google.com/workspace/preview): Returns a membership. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", + "description": "Returns a membership. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", "flatPath": "v1/spaces/{spacesId}/members/{membersId}", "httpMethod": "GET", "id": "chat.spaces.members.get", @@ -241,7 +241,7 @@ ] }, "list": { - "description": "[Developer Preview](https://developers.google.com/workspace/preview): Lists memberships in a space. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", + "description": "Lists memberships in a space. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", "flatPath": "v1/spaces/{spacesId}/members", "httpMethod": "GET", "id": "chat.spaces.members.list", @@ -502,7 +502,7 @@ } } }, - "revision": "20230103", + "revision": "20230115", "rootUrl": "https://chat.googleapis.com/", "schemas": { "ActionParameter": { @@ -1021,7 +1021,7 @@ "description": "The space in which the event occurred." }, "threadKey": { - "description": "The Chat app-defined key for the thread related to the event. See the thread_key field of the `spaces.message.create` request for more information.", + "description": "The Chat app-defined key for the thread related to the event. See [`spaces.messages.thread.threadKey`](/chat/api/reference/rest/v1/spaces.messages#Thread.FIELDS.thread_key) for more information.", "type": "string" }, "token": { @@ -1850,7 +1850,7 @@ "description": "Optional. Specify what action to take when the text input field provides suggestions to users who interact with it. If unspecified, the suggestions are set by `initialSuggestions` and are processed by the client. If specified, the app takes the action specified here, such as running a custom function. Supported by Google Workspace Add-ons, but not Chat apps. Support by Chat apps coming soon." }, "hintText": { - "description": "Text that appears inside the text input field meant to assist users by prompting them to enter a certain value. This text is not visible after users begin typing. Required if `label` is unspecified. Otherwise, optional.", + "description": "Text that appears below the text input field meant to assist users by prompting them to enter a certain value. This text is always visible. Required if `label` is unspecified. Otherwise, optional.", "type": "string" }, "initialSuggestions": { diff --git a/chat/v1/chat-gen.go b/chat/v1/chat-gen.go index 0394f4226f7..849b4fe6301 100644 --- a/chat/v1/chat-gen.go +++ b/chat/v1/chat-gen.go @@ -1121,8 +1121,9 @@ type DeprecatedEvent struct { Space *Space `json:"space,omitempty"` // ThreadKey: The Chat app-defined key for the thread related to the - // event. See the thread_key field of the `spaces.message.create` - // request for more information. + // event. See `spaces.messages.thread.threadKey` + // (/chat/api/reference/rest/v1/spaces.messages#Thread.FIELDS.thread_key) + // for more information. ThreadKey string `json:"threadKey,omitempty"` // Token: A secret value that legacy Chat apps can use to verify if a @@ -2692,10 +2693,10 @@ type GoogleAppsCardV1TextInput struct { // coming soon. AutoCompleteAction *GoogleAppsCardV1Action `json:"autoCompleteAction,omitempty"` - // HintText: Text that appears inside the text input field meant to + // HintText: Text that appears below the text input field meant to // assist users by prompting them to enter a certain value. This text is - // not visible after users begin typing. Required if `label` is - // unspecified. Otherwise, optional. + // always visible. Required if `label` is unspecified. Otherwise, + // optional. HintText string `json:"hintText,omitempty"` // InitialSuggestions: Suggested values that users can enter. These @@ -4668,9 +4669,7 @@ type SpacesMembersGetCall struct { header_ http.Header } -// Get: Developer Preview -// (https://developers.google.com/workspace/preview): Returns a -// membership. Requires authentication +// Get: Returns a membership. Requires authentication // (https://developers.google.com/chat/api/guides/auth/). Fully supports // service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). @@ -4790,7 +4789,7 @@ func (c *SpacesMembersGetCall) Do(opts ...googleapi.CallOption) (*Membership, er } return ret, nil // { - // "description": "[Developer Preview](https://developers.google.com/workspace/preview): Returns a membership. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", + // "description": "Returns a membership. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", // "flatPath": "v1/spaces/{spacesId}/members/{membersId}", // "httpMethod": "GET", // "id": "chat.spaces.members.get", @@ -4829,9 +4828,7 @@ type SpacesMembersListCall struct { header_ http.Header } -// List: Developer Preview -// (https://developers.google.com/workspace/preview): Lists memberships -// in a space. Requires authentication +// List: Lists memberships in a space. Requires authentication // (https://developers.google.com/chat/api/guides/auth/). Fully supports // service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). @@ -4972,7 +4969,7 @@ func (c *SpacesMembersListCall) Do(opts ...googleapi.CallOption) (*ListMembershi } return ret, nil // { - // "description": "[Developer Preview](https://developers.google.com/workspace/preview): Lists memberships in a space. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", + // "description": "Lists memberships in a space. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", // "flatPath": "v1/spaces/{spacesId}/members", // "httpMethod": "GET", // "id": "chat.spaces.members.list", diff --git a/cloudbuild/v1/cloudbuild-api.json b/cloudbuild/v1/cloudbuild-api.json index a2354df78ba..2ceb94e7caa 100644 --- a/cloudbuild/v1/cloudbuild-api.json +++ b/cloudbuild/v1/cloudbuild-api.json @@ -2295,7 +2295,7 @@ } } }, - "revision": "20230102", + "revision": "20230115", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { "ApprovalConfig": { @@ -2869,7 +2869,7 @@ "type": "array" }, "timeout": { - "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is ten minutes.", + "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", "format": "google-duration", "type": "string" }, @@ -3671,13 +3671,15 @@ "UNKNOWN", "CLOUD_SOURCE_REPOSITORIES", "GITHUB", - "BITBUCKET_SERVER" + "BITBUCKET_SERVER", + "GITLAB" ], "enumDescriptions": [ "The default, unknown repo type.", "A Google Cloud Source Repositories-hosted repo.", "A GitHub-hosted repo not necessarily on \"github.com\" (i.e. GitHub Enterprise).", - "A Bitbucket Server-hosted repo." + "A Bitbucket Server-hosted repo.", + "A GitLab-hosted repo." ], "type": "string" }, @@ -4006,13 +4008,15 @@ "UNKNOWN", "CLOUD_SOURCE_REPOSITORIES", "GITHUB", - "BITBUCKET_SERVER" + "BITBUCKET_SERVER", + "GITLAB" ], "enumDescriptions": [ "The default, unknown repo type.", "A Google Cloud Source Repositories-hosted repo.", "A GitHub-hosted repo not necessarily on \"github.com\" (i.e. GitHub Enterprise).", - "A Bitbucket Server-hosted repo." + "A Bitbucket Server-hosted repo.", + "A GitLab-hosted repo." ], "type": "string" }, @@ -4023,17 +4027,6 @@ }, "type": "object" }, - "HTTPDelivery": { - "description": "HTTPDelivery is the delivery configuration for an HTTP notification.", - "id": "HTTPDelivery", - "properties": { - "uri": { - "description": "The URI to which JSON-containing HTTP POST requests should be sent.", - "type": "string" - } - }, - "type": "object" - }, "Hash": { "description": "Container message for hash values.", "id": "Hash", @@ -4302,119 +4295,6 @@ }, "type": "object" }, - "Notification": { - "description": "Notification is the container which holds the data that is relevant to this particular notification.", - "id": "Notification", - "properties": { - "filter": { - "description": "The filter string to use for notification filtering. Currently, this is assumed to be a CEL program. See https://opensource.google/projects/cel for more.", - "type": "string" - }, - "httpDelivery": { - "$ref": "HTTPDelivery", - "description": "Configuration for HTTP delivery." - }, - "slackDelivery": { - "$ref": "SlackDelivery", - "description": "Configuration for Slack delivery." - }, - "smtpDelivery": { - "$ref": "SMTPDelivery", - "description": "Configuration for SMTP (email) delivery." - }, - "structDelivery": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "Escape hatch for users to supply custom delivery configs.", - "type": "object" - } - }, - "type": "object" - }, - "NotifierConfig": { - "description": "NotifierConfig is the top-level configuration message.", - "id": "NotifierConfig", - "properties": { - "apiVersion": { - "description": "The API version of this configuration format.", - "type": "string" - }, - "kind": { - "description": "The type of notifier to use (e.g. SMTPNotifier).", - "type": "string" - }, - "metadata": { - "$ref": "NotifierMetadata", - "description": "Metadata for referring to/handling/deploying this notifier." - }, - "spec": { - "$ref": "NotifierSpec", - "description": "The actual configuration for this notifier." - } - }, - "type": "object" - }, - "NotifierMetadata": { - "description": "NotifierMetadata contains the data which can be used to reference or describe this notifier.", - "id": "NotifierMetadata", - "properties": { - "name": { - "description": "The human-readable and user-given name for the notifier. For example: \"repo-merge-email-notifier\".", - "type": "string" - }, - "notifier": { - "description": "The string representing the name and version of notifier to deploy. Expected to be of the form of \"/:\". For example: \"gcr.io/my-project/notifiers/smtp:1.2.34\".", - "type": "string" - } - }, - "type": "object" - }, - "NotifierSecret": { - "description": "NotifierSecret is the container that maps a secret name (reference) to its Google Cloud Secret Manager resource path.", - "id": "NotifierSecret", - "properties": { - "name": { - "description": "Name is the local name of the secret, such as the verbatim string \"my-smtp-password\".", - "type": "string" - }, - "value": { - "description": "Value is interpreted to be a resource path for fetching the actual (versioned) secret data for this secret. For example, this would be a Google Cloud Secret Manager secret version resource path like: \"projects/my-project/secrets/my-secret/versions/latest\".", - "type": "string" - } - }, - "type": "object" - }, - "NotifierSecretRef": { - "description": "NotifierSecretRef contains the reference to a secret stored in the corresponding NotifierSpec.", - "id": "NotifierSecretRef", - "properties": { - "secretRef": { - "description": "The value of `secret_ref` should be a `name` that is registered in a `Secret` in the `secrets` list of the `Spec`.", - "type": "string" - } - }, - "type": "object" - }, - "NotifierSpec": { - "description": "NotifierSpec is the configuration container for notifications.", - "id": "NotifierSpec", - "properties": { - "notification": { - "$ref": "Notification", - "description": "The configuration of this particular notifier." - }, - "secrets": { - "description": "Configurations for secret resources used by this particular notifier.", - "items": { - "$ref": "NotifierSecret" - }, - "type": "array" - } - }, - "type": "object" - }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -4845,40 +4725,6 @@ }, "type": "object" }, - "SMTPDelivery": { - "description": "SMTPDelivery is the delivery configuration for an SMTP (email) notification.", - "id": "SMTPDelivery", - "properties": { - "fromAddress": { - "description": "This is the SMTP account/email that appears in the `From:` of the email. If empty, it is assumed to be sender.", - "type": "string" - }, - "password": { - "$ref": "NotifierSecretRef", - "description": "The SMTP sender's password." - }, - "port": { - "description": "The SMTP port of the server.", - "type": "string" - }, - "recipientAddresses": { - "description": "This is the list of addresses to which we send the email (i.e. in the `To:` of the email).", - "items": { - "type": "string" - }, - "type": "array" - }, - "senderAddress": { - "description": "This is the SMTP account/email that is used to send the message.", - "type": "string" - }, - "server": { - "description": "The address of the SMTP server.", - "type": "string" - } - }, - "type": "object" - }, "Secret": { "description": "Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.", "id": "Secret", @@ -4945,17 +4791,6 @@ }, "type": "object" }, - "SlackDelivery": { - "description": "SlackDelivery is the delivery configuration for delivering Slack messages via webhooks. See Slack webhook documentation at: https://api.slack.com/messaging/webhooks.", - "id": "SlackDelivery", - "properties": { - "webhookUri": { - "$ref": "NotifierSecretRef", - "description": "The secret reference for the Slack webhook URI for sending messages to a channel." - } - }, - "type": "object" - }, "Source": { "description": "Location of the source in a supported storage service.", "id": "Source", @@ -5282,7 +5117,7 @@ "id": "WorkerConfig", "properties": { "diskSizeGb": { - "description": "Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). Specify a value of up to 1000. If `0` is specified, Cloud Build will use a standard disk size.", + "description": "Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). Specify a value of up to 2000. If `0` is specified, Cloud Build will use a standard disk size.", "format": "int64", "type": "string" }, diff --git a/cloudbuild/v1/cloudbuild-gen.go b/cloudbuild/v1/cloudbuild-gen.go index be9e767ecbb..c9505ba55aa 100644 --- a/cloudbuild/v1/cloudbuild-gen.go +++ b/cloudbuild/v1/cloudbuild-gen.go @@ -1253,7 +1253,7 @@ type Build struct { // Timeout: Amount of time that this build should be allowed to run, to // second granularity. If this amount of time elapses, work on the build // will cease and the build status will be `TIMEOUT`. `timeout` starts - // ticking from `startTime`. Default time is ten minutes. + // ticking from `startTime`. Default time is 60 minutes. Timeout string `json:"timeout,omitempty"` // Timing: Output only. Stores timing information for phases of the @@ -2387,6 +2387,7 @@ type GitFileSource struct { // "GITHUB" - A GitHub-hosted repo not necessarily on "github.com" // (i.e. GitHub Enterprise). // "BITBUCKET_SERVER" - A Bitbucket Server-hosted repo. + // "GITLAB" - A GitLab-hosted repo. RepoType string `json:"repoType,omitempty"` // Revision: The branch, tag, arbitrary ref, or SHA version of the repo @@ -2935,6 +2936,7 @@ type GitRepoSource struct { // "GITHUB" - A GitHub-hosted repo not necessarily on "github.com" // (i.e. GitHub Enterprise). // "BITBUCKET_SERVER" - A Bitbucket Server-hosted repo. + // "GITLAB" - A GitLab-hosted repo. RepoType string `json:"repoType,omitempty"` // Uri: The URI of the repo. Either uri or repository can be specified @@ -2966,36 +2968,6 @@ func (s *GitRepoSource) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// HTTPDelivery: HTTPDelivery is the delivery configuration for an HTTP -// notification. -type HTTPDelivery struct { - // Uri: The URI to which JSON-containing HTTP POST requests should be - // sent. - Uri string `json:"uri,omitempty"` - - // ForceSendFields is a list of field names (e.g. "Uri") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "Uri") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *HTTPDelivery) MarshalJSON() ([]byte, error) { - type NoMethod HTTPDelivery - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - // Hash: Container message for hash values. type Hash struct { // Type: The type of hash that was performed. @@ -3530,222 +3502,6 @@ func (s *NetworkConfig) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Notification: Notification is the container which holds the data that -// is relevant to this particular notification. -type Notification struct { - // Filter: The filter string to use for notification filtering. - // Currently, this is assumed to be a CEL program. See - // https://opensource.google/projects/cel for more. - Filter string `json:"filter,omitempty"` - - // HttpDelivery: Configuration for HTTP delivery. - HttpDelivery *HTTPDelivery `json:"httpDelivery,omitempty"` - - // SlackDelivery: Configuration for Slack delivery. - SlackDelivery *SlackDelivery `json:"slackDelivery,omitempty"` - - // SmtpDelivery: Configuration for SMTP (email) delivery. - SmtpDelivery *SMTPDelivery `json:"smtpDelivery,omitempty"` - - // StructDelivery: Escape hatch for users to supply custom delivery - // configs. - StructDelivery googleapi.RawMessage `json:"structDelivery,omitempty"` - - // ForceSendFields is a list of field names (e.g. "Filter") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "Filter") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *Notification) MarshalJSON() ([]byte, error) { - type NoMethod Notification - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - -// NotifierConfig: NotifierConfig is the top-level configuration -// message. -type NotifierConfig struct { - // ApiVersion: The API version of this configuration format. - ApiVersion string `json:"apiVersion,omitempty"` - - // Kind: The type of notifier to use (e.g. SMTPNotifier). - Kind string `json:"kind,omitempty"` - - // Metadata: Metadata for referring to/handling/deploying this notifier. - Metadata *NotifierMetadata `json:"metadata,omitempty"` - - // Spec: The actual configuration for this notifier. - Spec *NotifierSpec `json:"spec,omitempty"` - - // ForceSendFields is a list of field names (e.g. "ApiVersion") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "ApiVersion") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *NotifierConfig) MarshalJSON() ([]byte, error) { - type NoMethod NotifierConfig - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - -// NotifierMetadata: NotifierMetadata contains the data which can be -// used to reference or describe this notifier. -type NotifierMetadata struct { - // Name: The human-readable and user-given name for the notifier. For - // example: "repo-merge-email-notifier". - Name string `json:"name,omitempty"` - - // Notifier: The string representing the name and version of notifier to - // deploy. Expected to be of the form of "/:". For example: - // "gcr.io/my-project/notifiers/smtp:1.2.34". - Notifier string `json:"notifier,omitempty"` - - // ForceSendFields is a list of field names (e.g. "Name") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "Name") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *NotifierMetadata) MarshalJSON() ([]byte, error) { - type NoMethod NotifierMetadata - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - -// NotifierSecret: NotifierSecret is the container that maps a secret -// name (reference) to its Google Cloud Secret Manager resource path. -type NotifierSecret struct { - // Name: Name is the local name of the secret, such as the verbatim - // string "my-smtp-password". - Name string `json:"name,omitempty"` - - // Value: Value is interpreted to be a resource path for fetching the - // actual (versioned) secret data for this secret. For example, this - // would be a Google Cloud Secret Manager secret version resource path - // like: "projects/my-project/secrets/my-secret/versions/latest". - Value string `json:"value,omitempty"` - - // ForceSendFields is a list of field names (e.g. "Name") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "Name") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *NotifierSecret) MarshalJSON() ([]byte, error) { - type NoMethod NotifierSecret - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - -// NotifierSecretRef: NotifierSecretRef contains the reference to a -// secret stored in the corresponding NotifierSpec. -type NotifierSecretRef struct { - // SecretRef: The value of `secret_ref` should be a `name` that is - // registered in a `Secret` in the `secrets` list of the `Spec`. - SecretRef string `json:"secretRef,omitempty"` - - // ForceSendFields is a list of field names (e.g. "SecretRef") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "SecretRef") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *NotifierSecretRef) MarshalJSON() ([]byte, error) { - type NoMethod NotifierSecretRef - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - -// NotifierSpec: NotifierSpec is the configuration container for -// notifications. -type NotifierSpec struct { - // Notification: The configuration of this particular notifier. - Notification *Notification `json:"notification,omitempty"` - - // Secrets: Configurations for secret resources used by this particular - // notifier. - Secrets []*NotifierSecret `json:"secrets,omitempty"` - - // ForceSendFields is a list of field names (e.g. "Notification") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "Notification") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *NotifierSpec) MarshalJSON() ([]byte, error) { - type NoMethod NotifierSpec - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - // Operation: This resource represents a long-running operation that is // the result of a network API call. type Operation struct { @@ -4448,53 +4204,6 @@ func (s *RunBuildTriggerRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// SMTPDelivery: SMTPDelivery is the delivery configuration for an SMTP -// (email) notification. -type SMTPDelivery struct { - // FromAddress: This is the SMTP account/email that appears in the - // `From:` of the email. If empty, it is assumed to be sender. - FromAddress string `json:"fromAddress,omitempty"` - - // Password: The SMTP sender's password. - Password *NotifierSecretRef `json:"password,omitempty"` - - // Port: The SMTP port of the server. - Port string `json:"port,omitempty"` - - // RecipientAddresses: This is the list of addresses to which we send - // the email (i.e. in the `To:` of the email). - RecipientAddresses []string `json:"recipientAddresses,omitempty"` - - // SenderAddress: This is the SMTP account/email that is used to send - // the message. - SenderAddress string `json:"senderAddress,omitempty"` - - // Server: The address of the SMTP server. - Server string `json:"server,omitempty"` - - // ForceSendFields is a list of field names (e.g. "FromAddress") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "FromAddress") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *SMTPDelivery) MarshalJSON() ([]byte, error) { - type NoMethod SMTPDelivery - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - // Secret: Pairs a set of secret environment variables containing // encrypted values with the Cloud KMS key to use to decrypt the value. // Note: Use `kmsKeyName` with `available_secrets` instead of using @@ -4633,37 +4342,6 @@ func (s *ServiceDirectoryConfig) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// SlackDelivery: SlackDelivery is the delivery configuration for -// delivering Slack messages via webhooks. See Slack webhook -// documentation at: https://api.slack.com/messaging/webhooks. -type SlackDelivery struct { - // WebhookUri: The secret reference for the Slack webhook URI for - // sending messages to a channel. - WebhookUri *NotifierSecretRef `json:"webhookUri,omitempty"` - - // ForceSendFields is a list of field names (e.g. "WebhookUri") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "WebhookUri") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *SlackDelivery) MarshalJSON() ([]byte, error) { - type NoMethod SlackDelivery - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - // Source: Location of the source in a supported storage service. type Source struct { // RepoSource: If provided, get the source from this location in a Cloud @@ -5255,7 +4933,7 @@ type WorkerConfig struct { // DiskSizeGb: Size of the disk attached to the worker, in GB. See // Worker pool config file // (https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). - // Specify a value of up to 1000. If `0` is specified, Cloud Build will + // Specify a value of up to 2000. If `0` is specified, Cloud Build will // use a standard disk size. DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` diff --git a/cloudidentity/v1/cloudidentity-api.json b/cloudidentity/v1/cloudidentity-api.json index 037d6c07f46..b0b8cca1b7a 100644 --- a/cloudidentity/v1/cloudidentity-api.json +++ b/cloudidentity/v1/cloudidentity-api.json @@ -1544,11 +1544,424 @@ } } } + }, + "inboundSamlSsoProfiles": { + "methods": { + "create": { + "description": "Creates an InboundSamlSsoProfile for a customer.", + "flatPath": "v1/inboundSamlSsoProfiles", + "httpMethod": "POST", + "id": "cloudidentity.inboundSamlSsoProfiles.create", + "parameterOrder": [], + "parameters": {}, + "path": "v1/inboundSamlSsoProfiles", + "request": { + "$ref": "InboundSamlSsoProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSamlSsoProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to get. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "InboundSamlSsoProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists InboundSamlSsoProfiles for a customer.", + "flatPath": "v1/inboundSamlSsoProfiles", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.list", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of InboundSamlSsoProfiles to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100. Requests with page_size greater than that will be silently interpreted as having this maximum value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListInboundSamlSsoProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSamlSsoProfiles` must match the call that provided the page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/inboundSamlSsoProfiles", + "response": { + "$ref": "ListInboundSamlSsoProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "PATCH", + "id": "cloudidentity.inboundSamlSsoProfiles.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the SAML SSO profile.", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "InboundSamlSsoProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "idpCredentials": { + "methods": { + "add": { + "description": "Adds an IdpCredential. Up to 2 credentials are allowed.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials:add", + "httpMethod": "POST", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.add", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The InboundSamlSsoProfile that owns the IdpCredential. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/idpCredentials:add", + "request": { + "$ref": "AddIdpCredentialRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an IdpCredential.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an IdpCredential.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to retrieve. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "IdpCredential" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of IdpCredentials in an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of `IdpCredential`s to return. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListIdpCredentials` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListIdpCredentials` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of `IdpCredential`s. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/idpCredentials", + "response": { + "$ref": "ListIdpCredentialsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "inboundSsoAssignments": { + "methods": { + "create": { + "description": "Creates an InboundSsoAssignment for users and devices in a `Customer` under a given `Group` or `OrgUnit`.", + "flatPath": "v1/inboundSsoAssignments", + "httpMethod": "POST", + "id": "cloudidentity.inboundSsoAssignments.create", + "parameterOrder": [], + "parameters": {}, + "path": "v1/inboundSsoAssignments", + "request": { + "$ref": "InboundSsoAssignment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an InboundSsoAssignment. To disable SSO, Create (or Update) an assignment that has `sso_mode` == `SSO_OFF`.", + "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSsoAssignments.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to delete. Format: `inboundSsoAssignments/{assignment}`", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an InboundSsoAssignment.", + "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSsoAssignments.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to fetch. Format: `inboundSsoAssignments/{assignment}`", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "InboundSsoAssignment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the InboundSsoAssignments for a `Customer`.", + "flatPath": "v1/inboundSsoAssignments", + "httpMethod": "GET", + "id": "cloudidentity.inboundSsoAssignments.list", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "A CEL expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of assignments to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100, though requests with page_size greater than that will be silently interpreted as having this maximum value. This may increase in the futue.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListInboundSsoAssignments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSsoAssignments` must match the call that provided the page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/inboundSsoAssignments", + "response": { + "$ref": "ListInboundSsoAssignmentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an InboundSsoAssignment. The body of this request is the `inbound_sso_assignment` field and the `update_mask` is relative to that. For example: a PATCH to `/v1/inboundSsoAssignments/0abcdefg1234567\u0026update_mask=rank` with a body of `{ \"rank\": 1 }` moves that (presumably group-targeted) SSO assignment to the highest priority and shifts any other group-targeted assignments down in priority.", + "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "PATCH", + "id": "cloudidentity.inboundSsoAssignments.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Inbound SSO Assignment.", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "InboundSsoAssignment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } }, - "revision": "20221221", + "revision": "20230117", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { + "AddIdpCredentialOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.AddIdpCredential.", + "id": "AddIdpCredentialOperationMetadata", + "properties": {}, + "type": "object" + }, + "AddIdpCredentialRequest": { + "description": "The request for creating an IdpCredential with its associated payload. An InboundSamlSsoProfile can own up to 2 credentials.", + "id": "AddIdpCredentialRequest", + "properties": { + "pemData": { + "description": "PEM encoded x509 certificate containing the public key for verifying IdP signatures.", + "type": "string" + } + }, + "type": "object" + }, "CancelUserInvitationRequest": { "description": "Request to cancel sent invitation for target email in UserInvitation.", "id": "CancelUserInvitationRequest", @@ -1572,6 +1985,18 @@ "properties": {}, "type": "object" }, + "CreateInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.CreateInboundSamlSsoProfile.", + "id": "CreateInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "CreateInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.CreateInboundSsoAssignment.", + "id": "CreateInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "CreateMembershipMetadata": { "description": "Metadata for CreateMembership LRO.", "id": "CreateMembershipMetadata", @@ -1584,12 +2009,42 @@ "properties": {}, "type": "object" }, + "DeleteIdpCredentialOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.DeleteIdpCredential.", + "id": "DeleteIdpCredentialOperationMetadata", + "properties": {}, + "type": "object" + }, + "DeleteInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.DeleteInboundSamlSsoProfile.", + "id": "DeleteInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "DeleteInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.DeleteInboundSsoAssignment.", + "id": "DeleteInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "DeleteMembershipMetadata": { "description": "Metadata for DeleteMembership LRO.", "id": "DeleteMembershipMetadata", "properties": {}, "type": "object" }, + "DsaPublicKeyInfo": { + "description": "Information of a DSA public key.", + "id": "DsaPublicKeyInfo", + "properties": { + "keySize": { + "description": "Key size in bits (size of parameter P).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "DynamicGroupMetadata": { "description": "Dynamic group metadata like queries and status.", "id": "DynamicGroupMetadata", @@ -2592,6 +3047,115 @@ }, "type": "object" }, + "IdpCredential": { + "description": "Credential for verifying signatures produced by the Identity Provider.", + "id": "IdpCredential", + "properties": { + "dsaKeyInfo": { + "$ref": "DsaPublicKeyInfo", + "description": "Output only. Information of a DSA public key.", + "readOnly": true + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the credential.", + "readOnly": true, + "type": "string" + }, + "rsaKeyInfo": { + "$ref": "RsaPublicKeyInfo", + "description": "Output only. Information of a RSA public key.", + "readOnly": true + }, + "updateTime": { + "description": "Output only. Time when the `IdpCredential` was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InboundSamlSsoProfile": { + "description": "A [SAML 2.0](https://www.oasis-open.org/standards#samlv2.0) federation between a Google enterprise customer and a SAML identity provider.", + "id": "InboundSamlSsoProfile", + "properties": { + "customer": { + "description": "Immutable. The customer. For example: `customers/C0123abc`.", + "type": "string" + }, + "displayName": { + "description": "Human-readable name of the SAML SSO profile.", + "type": "string" + }, + "idpConfig": { + "$ref": "SamlIdpConfig", + "description": "SAML identity provider configuration." + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the SAML SSO profile.", + "readOnly": true, + "type": "string" + }, + "spConfig": { + "$ref": "SamlSpConfig", + "description": "SAML service provider configuration for this SAML SSO profile. These are the service provider details provided by Google that should be configured on the corresponding identity provider." + } + }, + "type": "object" + }, + "InboundSsoAssignment": { + "description": "Targets with \"set\" SSO assignments and their respective assignments.", + "id": "InboundSsoAssignment", + "properties": { + "customer": { + "description": "Immutable. The customer. For example: `customers/C0123abc`.", + "type": "string" + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Inbound SSO Assignment.", + "readOnly": true, + "type": "string" + }, + "rank": { + "description": "Must be zero (which is the default value so it can be omitted) for assignments with `target_org_unit` set and must be greater-than-or-equal-to one for assignments with `target_group` set.", + "format": "int32", + "type": "integer" + }, + "samlSsoInfo": { + "$ref": "SamlSsoInfo", + "description": "SAML SSO details. Must be set if and only if `sso_mode` is set to `SAML_SSO`." + }, + "signInBehavior": { + "$ref": "SignInBehavior", + "description": "Assertions about users assigned to an IdP will always be accepted from that IdP. This controls whether/when Google should redirect a user to the IdP. Unset (defaults) is the recommended configuration." + }, + "ssoMode": { + "description": "Inbound SSO behavior.", + "enum": [ + "SSO_MODE_UNSPECIFIED", + "SSO_OFF", + "SAML_SSO", + "DOMAIN_WIDE_SAML_IF_ENABLED" + ], + "enumDescriptions": [ + "Not allowed.", + "Disable SSO for the targeted users.", + "Use an external SAML Identity Provider for SSO for the targeted users.", + "Use the domain-wide SAML Identity Provider for the targeted users if one is configured; otherwise, this is equivalent to `SSO_OFF`. Note that this will also be equivalent to `SSO_OFF` if/when support for domain-wide SAML is removed. Google may disallow this mode at that point and existing assignments with this mode may be automatically changed to `SSO_OFF`." + ], + "type": "string" + }, + "targetGroup": { + "description": "Immutable. Must be of the form `groups/{group}`.", + "type": "string" + }, + "targetOrgUnit": { + "description": "Immutable. Must be of the form `orgUnits/{org_unit}`.", + "type": "string" + } + }, + "type": "object" + }, "IsInvitableUserResponse": { "description": "Response for IsInvitableUser RPC.", "id": "IsInvitableUserResponse", @@ -2621,6 +3185,60 @@ }, "type": "object" }, + "ListIdpCredentialsResponse": { + "description": "Response of the InboundSamlSsoProfilesService.ListIdpCredentials method.", + "id": "ListIdpCredentialsResponse", + "properties": { + "idpCredentials": { + "description": "The IdpCredentials from the specified InboundSamlSsoProfile.", + "items": { + "$ref": "IdpCredential" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "ListInboundSamlSsoProfilesResponse": { + "description": "Response of the InboundSamlSsoProfilesService.ListInboundSamlSsoProfiles method.", + "id": "ListInboundSamlSsoProfilesResponse", + "properties": { + "inboundSamlSsoProfiles": { + "description": "List of InboundSamlSsoProfiles.", + "items": { + "$ref": "InboundSamlSsoProfile" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "ListInboundSsoAssignmentsResponse": { + "description": "Response of the InboundSsoAssignmentsService.ListInboundSsoAssignments method.", + "id": "ListInboundSsoAssignmentsResponse", + "properties": { + "inboundSsoAssignments": { + "description": "The assignments.", + "items": { + "$ref": "InboundSsoAssignment" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, "ListMembershipsResponse": { "description": "The response message for MembershipsService.ListMemberships.", "id": "ListMembershipsResponse", @@ -2965,6 +3583,69 @@ }, "type": "object" }, + "RsaPublicKeyInfo": { + "description": "Information of a RSA public key.", + "id": "RsaPublicKeyInfo", + "properties": { + "keySize": { + "description": "Key size in bits (size of the modulus).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SamlIdpConfig": { + "description": "SAML IDP (identity provider) configuration.", + "id": "SamlIdpConfig", + "properties": { + "changePasswordUri": { + "description": "The **Change Password URL** of the identity provider. Users will be sent to this URL when changing their passwords at `myaccount.google.com`. This takes precedence over the change password URL configured at customer-level. Must use `HTTPS`.", + "type": "string" + }, + "entityId": { + "description": "Required. The SAML **Entity ID** of the identity provider.", + "type": "string" + }, + "logoutRedirectUri": { + "description": "The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is currently not supported. Must use `HTTPS`.", + "type": "string" + }, + "singleSignOnServiceUri": { + "description": "Required. The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Currently assumed to accept the `HTTP-Redirect` binding.", + "type": "string" + } + }, + "type": "object" + }, + "SamlSpConfig": { + "description": "SAML SP (service provider) configuration.", + "id": "SamlSpConfig", + "properties": { + "assertionConsumerServiceUri": { + "description": "Output only. The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Currently assumed to accept response messages via the `HTTP-POST` binding.", + "readOnly": true, + "type": "string" + }, + "entityId": { + "description": "Output only. The SAML **Entity ID** for this service provider.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SamlSsoInfo": { + "description": "Details that are applicable when `sso_mode` == `SAML_SSO`.", + "id": "SamlSsoInfo", + "properties": { + "inboundSamlSsoProfile": { + "description": "Required. Name of the `InboundSamlSsoProfile` to use. Must be of the form `inboundSamlSsoProfiles/{inbound_saml_sso_profile}`. ", + "type": "string" + } + }, + "type": "object" + }, "SearchGroupsResponse": { "description": "The response message for GroupsService.SearchGroups.", "id": "SearchGroupsResponse", @@ -3041,6 +3722,25 @@ "properties": {}, "type": "object" }, + "SignInBehavior": { + "description": "Controls sign-in behavior.", + "id": "SignInBehavior", + "properties": { + "redirectCondition": { + "description": "When to redirect sign-ins to the IdP.", + "enum": [ + "REDIRECT_CONDITION_UNSPECIFIED", + "NEVER" + ], + "enumDescriptions": [ + "Default and means \"always\"", + "Sign-in flows where the user is prompted for their identity will not redirect to the IdP (so the user will most likely be prompted by Google for a password), but special flows like IdP-initiated SAML and sign-in following automatic redirection to the IdP by domain-specific service URLs will accept the IdP's assertion of the user's identity." + ], + "type": "string" + } + }, + "type": "object" + }, "Status": { "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", "id": "Status", @@ -3085,6 +3785,18 @@ "properties": {}, "type": "object" }, + "UpdateInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.UpdateInboundSamlSsoProfile.", + "id": "UpdateInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "UpdateInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.UpdateInboundSsoAssignment.", + "id": "UpdateInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "UpdateMembershipMetadata": { "description": "Metadata for UpdateMembership LRO.", "id": "UpdateMembershipMetadata", diff --git a/cloudidentity/v1/cloudidentity-gen.go b/cloudidentity/v1/cloudidentity-gen.go index 6f3126f82e8..419fa8a6997 100644 --- a/cloudidentity/v1/cloudidentity-gen.go +++ b/cloudidentity/v1/cloudidentity-gen.go @@ -149,6 +149,8 @@ func New(client *http.Client) (*Service, error) { s.Customers = NewCustomersService(s) s.Devices = NewDevicesService(s) s.Groups = NewGroupsService(s) + s.InboundSamlSsoProfiles = NewInboundSamlSsoProfilesService(s) + s.InboundSsoAssignments = NewInboundSsoAssignmentsService(s) return s, nil } @@ -162,6 +164,10 @@ type Service struct { Devices *DevicesService Groups *GroupsService + + InboundSamlSsoProfiles *InboundSamlSsoProfilesService + + InboundSsoAssignments *InboundSsoAssignmentsService } func (s *Service) userAgent() string { @@ -246,6 +252,72 @@ type GroupsMembershipsService struct { s *Service } +func NewInboundSamlSsoProfilesService(s *Service) *InboundSamlSsoProfilesService { + rs := &InboundSamlSsoProfilesService{s: s} + rs.IdpCredentials = NewInboundSamlSsoProfilesIdpCredentialsService(s) + return rs +} + +type InboundSamlSsoProfilesService struct { + s *Service + + IdpCredentials *InboundSamlSsoProfilesIdpCredentialsService +} + +func NewInboundSamlSsoProfilesIdpCredentialsService(s *Service) *InboundSamlSsoProfilesIdpCredentialsService { + rs := &InboundSamlSsoProfilesIdpCredentialsService{s: s} + return rs +} + +type InboundSamlSsoProfilesIdpCredentialsService struct { + s *Service +} + +func NewInboundSsoAssignmentsService(s *Service) *InboundSsoAssignmentsService { + rs := &InboundSsoAssignmentsService{s: s} + return rs +} + +type InboundSsoAssignmentsService struct { + s *Service +} + +// AddIdpCredentialOperationMetadata: LRO response metadata for +// InboundSamlSsoProfilesService.AddIdpCredential. +type AddIdpCredentialOperationMetadata struct { +} + +// AddIdpCredentialRequest: The request for creating an IdpCredential +// with its associated payload. An InboundSamlSsoProfile can own up to 2 +// credentials. +type AddIdpCredentialRequest struct { + // PemData: PEM encoded x509 certificate containing the public key for + // verifying IdP signatures. + PemData string `json:"pemData,omitempty"` + + // ForceSendFields is a list of field names (e.g. "PemData") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "PemData") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AddIdpCredentialRequest) MarshalJSON() ([]byte, error) { + type NoMethod AddIdpCredentialRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // CancelUserInvitationRequest: Request to cancel sent invitation for // target email in UserInvitation. type CancelUserInvitationRequest struct { @@ -292,6 +364,16 @@ func (s *CheckTransitiveMembershipResponse) MarshalJSON() ([]byte, error) { type CreateGroupMetadata struct { } +// CreateInboundSamlSsoProfileOperationMetadata: LRO response metadata +// for InboundSamlSsoProfilesService.CreateInboundSamlSsoProfile. +type CreateInboundSamlSsoProfileOperationMetadata struct { +} + +// CreateInboundSsoAssignmentOperationMetadata: LRO response metadata +// for InboundSsoAssignmentsService.CreateInboundSsoAssignment. +type CreateInboundSsoAssignmentOperationMetadata struct { +} + // CreateMembershipMetadata: Metadata for CreateMembership LRO. type CreateMembershipMetadata struct { } @@ -300,10 +382,53 @@ type CreateMembershipMetadata struct { type DeleteGroupMetadata struct { } +// DeleteIdpCredentialOperationMetadata: LRO response metadata for +// InboundSamlSsoProfilesService.DeleteIdpCredential. +type DeleteIdpCredentialOperationMetadata struct { +} + +// DeleteInboundSamlSsoProfileOperationMetadata: LRO response metadata +// for InboundSamlSsoProfilesService.DeleteInboundSamlSsoProfile. +type DeleteInboundSamlSsoProfileOperationMetadata struct { +} + +// DeleteInboundSsoAssignmentOperationMetadata: LRO response metadata +// for InboundSsoAssignmentsService.DeleteInboundSsoAssignment. +type DeleteInboundSsoAssignmentOperationMetadata struct { +} + // DeleteMembershipMetadata: Metadata for DeleteMembership LRO. type DeleteMembershipMetadata struct { } +// DsaPublicKeyInfo: Information of a DSA public key. +type DsaPublicKeyInfo struct { + // KeySize: Key size in bits (size of parameter P). + KeySize int64 `json:"keySize,omitempty"` + + // ForceSendFields is a list of field names (e.g. "KeySize") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "KeySize") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DsaPublicKeyInfo) MarshalJSON() ([]byte, error) { + type NoMethod DsaPublicKeyInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DynamicGroupMetadata: Dynamic group metadata like queries and status. type DynamicGroupMetadata struct { // Queries: Memberships will be the union of all queries. Only one entry @@ -1779,6 +1904,175 @@ func (s *GroupRelation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// IdpCredential: Credential for verifying signatures produced by the +// Identity Provider. +type IdpCredential struct { + // DsaKeyInfo: Output only. Information of a DSA public key. + DsaKeyInfo *DsaPublicKeyInfo `json:"dsaKeyInfo,omitempty"` + + // Name: Output only. Resource name + // (https://cloud.google.com/apis/design/resource_names) of the + // credential. + Name string `json:"name,omitempty"` + + // RsaKeyInfo: Output only. Information of a RSA public key. + RsaKeyInfo *RsaPublicKeyInfo `json:"rsaKeyInfo,omitempty"` + + // UpdateTime: Output only. Time when the `IdpCredential` was last + // updated. + UpdateTime string `json:"updateTime,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DsaKeyInfo") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DsaKeyInfo") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *IdpCredential) MarshalJSON() ([]byte, error) { + type NoMethod IdpCredential + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InboundSamlSsoProfile: A SAML 2.0 +// (https://www.oasis-open.org/standards#samlv2.0) federation between a +// Google enterprise customer and a SAML identity provider. +type InboundSamlSsoProfile struct { + // Customer: Immutable. The customer. For example: `customers/C0123abc`. + Customer string `json:"customer,omitempty"` + + // DisplayName: Human-readable name of the SAML SSO profile. + DisplayName string `json:"displayName,omitempty"` + + // IdpConfig: SAML identity provider configuration. + IdpConfig *SamlIdpConfig `json:"idpConfig,omitempty"` + + // Name: Output only. Resource name + // (https://cloud.google.com/apis/design/resource_names) of the SAML SSO + // profile. + Name string `json:"name,omitempty"` + + // SpConfig: SAML service provider configuration for this SAML SSO + // profile. These are the service provider details provided by Google + // that should be configured on the corresponding identity provider. + SpConfig *SamlSpConfig `json:"spConfig,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Customer") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Customer") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InboundSamlSsoProfile) MarshalJSON() ([]byte, error) { + type NoMethod InboundSamlSsoProfile + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InboundSsoAssignment: Targets with "set" SSO assignments and their +// respective assignments. +type InboundSsoAssignment struct { + // Customer: Immutable. The customer. For example: `customers/C0123abc`. + Customer string `json:"customer,omitempty"` + + // Name: Output only. Resource name + // (https://cloud.google.com/apis/design/resource_names) of the Inbound + // SSO Assignment. + Name string `json:"name,omitempty"` + + // Rank: Must be zero (which is the default value so it can be omitted) + // for assignments with `target_org_unit` set and must be + // greater-than-or-equal-to one for assignments with `target_group` set. + Rank int64 `json:"rank,omitempty"` + + // SamlSsoInfo: SAML SSO details. Must be set if and only if `sso_mode` + // is set to `SAML_SSO`. + SamlSsoInfo *SamlSsoInfo `json:"samlSsoInfo,omitempty"` + + // SignInBehavior: Assertions about users assigned to an IdP will always + // be accepted from that IdP. This controls whether/when Google should + // redirect a user to the IdP. Unset (defaults) is the recommended + // configuration. + SignInBehavior *SignInBehavior `json:"signInBehavior,omitempty"` + + // SsoMode: Inbound SSO behavior. + // + // Possible values: + // "SSO_MODE_UNSPECIFIED" - Not allowed. + // "SSO_OFF" - Disable SSO for the targeted users. + // "SAML_SSO" - Use an external SAML Identity Provider for SSO for the + // targeted users. + // "DOMAIN_WIDE_SAML_IF_ENABLED" - Use the domain-wide SAML Identity + // Provider for the targeted users if one is configured; otherwise, this + // is equivalent to `SSO_OFF`. Note that this will also be equivalent to + // `SSO_OFF` if/when support for domain-wide SAML is removed. Google may + // disallow this mode at that point and existing assignments with this + // mode may be automatically changed to `SSO_OFF`. + SsoMode string `json:"ssoMode,omitempty"` + + // TargetGroup: Immutable. Must be of the form `groups/{group}`. + TargetGroup string `json:"targetGroup,omitempty"` + + // TargetOrgUnit: Immutable. Must be of the form `orgUnits/{org_unit}`. + TargetOrgUnit string `json:"targetOrgUnit,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Customer") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Customer") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InboundSsoAssignment) MarshalJSON() ([]byte, error) { + type NoMethod InboundSsoAssignment + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // IsInvitableUserResponse: Response for IsInvitableUser RPC. type IsInvitableUserResponse struct { // IsInvitableUser: Returns true if the email address is invitable. @@ -1849,6 +2143,126 @@ func (s *ListGroupsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ListIdpCredentialsResponse: Response of the +// InboundSamlSsoProfilesService.ListIdpCredentials method. +type ListIdpCredentialsResponse struct { + // IdpCredentials: The IdpCredentials from the specified + // InboundSamlSsoProfile. + IdpCredentials []*IdpCredential `json:"idpCredentials,omitempty"` + + // NextPageToken: A token, which can be sent as `page_token` to retrieve + // the next page. If this field is omitted, there are no subsequent + // pages. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "IdpCredentials") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "IdpCredentials") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ListIdpCredentialsResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListIdpCredentialsResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListInboundSamlSsoProfilesResponse: Response of the +// InboundSamlSsoProfilesService.ListInboundSamlSsoProfiles method. +type ListInboundSamlSsoProfilesResponse struct { + // InboundSamlSsoProfiles: List of InboundSamlSsoProfiles. + InboundSamlSsoProfiles []*InboundSamlSsoProfile `json:"inboundSamlSsoProfiles,omitempty"` + + // NextPageToken: A token, which can be sent as `page_token` to retrieve + // the next page. If this field is omitted, there are no subsequent + // pages. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. + // "InboundSamlSsoProfiles") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "InboundSamlSsoProfiles") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ListInboundSamlSsoProfilesResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListInboundSamlSsoProfilesResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListInboundSsoAssignmentsResponse: Response of the +// InboundSsoAssignmentsService.ListInboundSsoAssignments method. +type ListInboundSsoAssignmentsResponse struct { + // InboundSsoAssignments: The assignments. + InboundSsoAssignments []*InboundSsoAssignment `json:"inboundSsoAssignments,omitempty"` + + // NextPageToken: A token, which can be sent as `page_token` to retrieve + // the next page. If this field is omitted, there are no subsequent + // pages. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. + // "InboundSsoAssignments") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "InboundSsoAssignments") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ListInboundSsoAssignmentsResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListInboundSsoAssignmentsResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ListMembershipsResponse: The response message for // MembershipsService.ListMemberships. type ListMembershipsResponse struct { @@ -2483,7 +2897,153 @@ func (s *RestrictionEvaluations) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// SearchGroupsResponse: The response message for +// RsaPublicKeyInfo: Information of a RSA public key. +type RsaPublicKeyInfo struct { + // KeySize: Key size in bits (size of the modulus). + KeySize int64 `json:"keySize,omitempty"` + + // ForceSendFields is a list of field names (e.g. "KeySize") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "KeySize") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RsaPublicKeyInfo) MarshalJSON() ([]byte, error) { + type NoMethod RsaPublicKeyInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SamlIdpConfig: SAML IDP (identity provider) configuration. +type SamlIdpConfig struct { + // ChangePasswordUri: The **Change Password URL** of the identity + // provider. Users will be sent to this URL when changing their + // passwords at `myaccount.google.com`. This takes precedence over the + // change password URL configured at customer-level. Must use `HTTPS`. + ChangePasswordUri string `json:"changePasswordUri,omitempty"` + + // EntityId: Required. The SAML **Entity ID** of the identity provider. + EntityId string `json:"entityId,omitempty"` + + // LogoutRedirectUri: The **Logout Redirect URL** (sign-out page URL) of + // the identity provider. When a user clicks the sign-out link on a + // Google page, they will be redirected to this URL. This is a pure + // redirect with no attached SAML `LogoutRequest` i.e. SAML single + // logout is currently not supported. Must use `HTTPS`. + LogoutRedirectUri string `json:"logoutRedirectUri,omitempty"` + + // SingleSignOnServiceUri: Required. The `SingleSignOnService` endpoint + // location (sign-in page URL) of the identity provider. This is the URL + // where the `AuthnRequest` will be sent. Must use `HTTPS`. Currently + // assumed to accept the `HTTP-Redirect` binding. + SingleSignOnServiceUri string `json:"singleSignOnServiceUri,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ChangePasswordUri") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ChangePasswordUri") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *SamlIdpConfig) MarshalJSON() ([]byte, error) { + type NoMethod SamlIdpConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SamlSpConfig: SAML SP (service provider) configuration. +type SamlSpConfig struct { + // AssertionConsumerServiceUri: Output only. The SAML **Assertion + // Consumer Service (ACS) URL** to be used for the IDP-initiated login. + // Currently assumed to accept response messages via the `HTTP-POST` + // binding. + AssertionConsumerServiceUri string `json:"assertionConsumerServiceUri,omitempty"` + + // EntityId: Output only. The SAML **Entity ID** for this service + // provider. + EntityId string `json:"entityId,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AssertionConsumerServiceUri") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "AssertionConsumerServiceUri") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SamlSpConfig) MarshalJSON() ([]byte, error) { + type NoMethod SamlSpConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SamlSsoInfo: Details that are applicable when `sso_mode` == +// `SAML_SSO`. +type SamlSsoInfo struct { + // InboundSamlSsoProfile: Required. Name of the `InboundSamlSsoProfile` + // to use. Must be of the form + // `inboundSamlSsoProfiles/{inbound_saml_sso_profile}`. + InboundSamlSsoProfile string `json:"inboundSamlSsoProfile,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "InboundSamlSsoProfile") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "InboundSamlSsoProfile") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *SamlSsoInfo) MarshalJSON() ([]byte, error) { + type NoMethod SamlSsoInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SearchGroupsResponse: The response message for // GroupsService.SearchGroups. type SearchGroupsResponse struct { // Groups: The `Group` resources that match the search query. @@ -2636,6 +3196,44 @@ func (s *SecuritySettings) MarshalJSON() ([]byte, error) { type SendUserInvitationRequest struct { } +// SignInBehavior: Controls sign-in behavior. +type SignInBehavior struct { + // RedirectCondition: When to redirect sign-ins to the IdP. + // + // Possible values: + // "REDIRECT_CONDITION_UNSPECIFIED" - Default and means "always" + // "NEVER" - Sign-in flows where the user is prompted for their + // identity will not redirect to the IdP (so the user will most likely + // be prompted by Google for a password), but special flows like + // IdP-initiated SAML and sign-in following automatic redirection to the + // IdP by domain-specific service URLs will accept the IdP's assertion + // of the user's identity. + RedirectCondition string `json:"redirectCondition,omitempty"` + + // ForceSendFields is a list of field names (e.g. "RedirectCondition") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "RedirectCondition") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *SignInBehavior) MarshalJSON() ([]byte, error) { + type NoMethod SignInBehavior + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Status: The `Status` type defines a logical error model that is // suitable for different programming environments, including REST APIs // and RPC APIs. It is used by gRPC (https://github.com/grpc). Each @@ -2714,6 +3312,16 @@ func (s *TransitiveMembershipRole) MarshalJSON() ([]byte, error) { type UpdateGroupMetadata struct { } +// UpdateInboundSamlSsoProfileOperationMetadata: LRO response metadata +// for InboundSamlSsoProfilesService.UpdateInboundSamlSsoProfile. +type UpdateInboundSamlSsoProfileOperationMetadata struct { +} + +// UpdateInboundSsoAssignmentOperationMetadata: LRO response metadata +// for InboundSsoAssignmentsService.UpdateInboundSsoAssignment. +type UpdateInboundSsoAssignmentOperationMetadata struct { +} + // UpdateMembershipMetadata: Metadata for UpdateMembership LRO. type UpdateMembershipMetadata struct { } @@ -9997,3 +10605,2171 @@ func (c *GroupsMembershipsSearchTransitiveMembershipsCall) Pages(ctx context.Con c.PageToken(x.NextPageToken) } } + +// method id "cloudidentity.inboundSamlSsoProfiles.create": + +type InboundSamlSsoProfilesCreateCall struct { + s *Service + inboundsamlssoprofile *InboundSamlSsoProfile + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates an InboundSamlSsoProfile for a customer. +func (r *InboundSamlSsoProfilesService) Create(inboundsamlssoprofile *InboundSamlSsoProfile) *InboundSamlSsoProfilesCreateCall { + c := &InboundSamlSsoProfilesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.inboundsamlssoprofile = inboundsamlssoprofile + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesCreateCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesCreateCall) Context(ctx context.Context) *InboundSamlSsoProfilesCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.inboundsamlssoprofile) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inboundSamlSsoProfiles") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.create" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates an InboundSamlSsoProfile for a customer.", + // "flatPath": "v1/inboundSamlSsoProfiles", + // "httpMethod": "POST", + // "id": "cloudidentity.inboundSamlSsoProfiles.create", + // "parameterOrder": [], + // "parameters": {}, + // "path": "v1/inboundSamlSsoProfiles", + // "request": { + // "$ref": "InboundSamlSsoProfile" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSamlSsoProfiles.delete": + +type InboundSamlSsoProfilesDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes an InboundSamlSsoProfile. +// +// - name: The resource name +// (https://cloud.google.com/apis/design/resource_names) of the +// InboundSamlSsoProfile to delete. Format: +// `inboundSamlSsoProfiles/{sso_profile_id}`. +func (r *InboundSamlSsoProfilesService) Delete(name string) *InboundSamlSsoProfilesDeleteCall { + c := &InboundSamlSsoProfilesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesDeleteCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesDeleteCall) Context(ctx context.Context) *InboundSamlSsoProfilesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes an InboundSamlSsoProfile.", + // "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + // "httpMethod": "DELETE", + // "id": "cloudidentity.inboundSamlSsoProfiles.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + // "location": "path", + // "pattern": "^inboundSamlSsoProfiles/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSamlSsoProfiles.get": + +type InboundSamlSsoProfilesGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets an InboundSamlSsoProfile. +// +// - name: The resource name +// (https://cloud.google.com/apis/design/resource_names) of the +// InboundSamlSsoProfile to get. Format: +// `inboundSamlSsoProfiles/{sso_profile_id}`. +func (r *InboundSamlSsoProfilesService) Get(name string) *InboundSamlSsoProfilesGetCall { + c := &InboundSamlSsoProfilesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesGetCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InboundSamlSsoProfilesGetCall) IfNoneMatch(entityTag string) *InboundSamlSsoProfilesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesGetCall) Context(ctx context.Context) *InboundSamlSsoProfilesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.get" call. +// Exactly one of *InboundSamlSsoProfile or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *InboundSamlSsoProfile.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesGetCall) Do(opts ...googleapi.CallOption) (*InboundSamlSsoProfile, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &InboundSamlSsoProfile{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets an InboundSamlSsoProfile.", + // "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + // "httpMethod": "GET", + // "id": "cloudidentity.inboundSamlSsoProfiles.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to get. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + // "location": "path", + // "pattern": "^inboundSamlSsoProfiles/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "InboundSamlSsoProfile" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSamlSsoProfiles.list": + +type InboundSamlSsoProfilesListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists InboundSamlSsoProfiles for a customer. +func (r *InboundSamlSsoProfilesService) List() *InboundSamlSsoProfilesListCall { + c := &InboundSamlSsoProfilesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// Filter sets the optional parameter "filter": A Common Expression +// Language (https://github.com/google/cel-spec) expression to filter +// the results. The only currently-supported filter is filtering by +// customer. For example: `customer=="customers/C0123abc". Omitting the +// filter or specifying a filter of `customer=="customers/my_customer" +// will return the profiles for the customer that the caller +// (authenticated user) belongs to. +func (c *InboundSamlSsoProfilesListCall) Filter(filter string) *InboundSamlSsoProfilesListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// PageSize sets the optional parameter "pageSize": The maximum number +// of InboundSamlSsoProfiles to return. The service may return fewer +// than this value. If omitted (or defaulted to zero) the server will +// use a sensible default. This default may change over time. The +// maximum allowed value is 100. Requests with page_size greater than +// that will be silently interpreted as having this maximum value. +func (c *InboundSamlSsoProfilesListCall) PageSize(pageSize int64) *InboundSamlSsoProfilesListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A page token, +// received from a previous `ListInboundSamlSsoProfiles` call. Provide +// this to retrieve the subsequent page. When paginating, all other +// parameters provided to `ListInboundSamlSsoProfiles` must match the +// call that provided the page token. +func (c *InboundSamlSsoProfilesListCall) PageToken(pageToken string) *InboundSamlSsoProfilesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesListCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InboundSamlSsoProfilesListCall) IfNoneMatch(entityTag string) *InboundSamlSsoProfilesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesListCall) Context(ctx context.Context) *InboundSamlSsoProfilesListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inboundSamlSsoProfiles") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.list" call. +// Exactly one of *ListInboundSamlSsoProfilesResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListInboundSamlSsoProfilesResponse.ServerResponse.Header or +// (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *InboundSamlSsoProfilesListCall) Do(opts ...googleapi.CallOption) (*ListInboundSamlSsoProfilesResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ListInboundSamlSsoProfilesResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists InboundSamlSsoProfiles for a customer.", + // "flatPath": "v1/inboundSamlSsoProfiles", + // "httpMethod": "GET", + // "id": "cloudidentity.inboundSamlSsoProfiles.list", + // "parameterOrder": [], + // "parameters": { + // "filter": { + // "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", + // "location": "query", + // "type": "string" + // }, + // "pageSize": { + // "description": "The maximum number of InboundSamlSsoProfiles to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100. Requests with page_size greater than that will be silently interpreted as having this maximum value.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A page token, received from a previous `ListInboundSamlSsoProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSamlSsoProfiles` must match the call that provided the page token.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/inboundSamlSsoProfiles", + // "response": { + // "$ref": "ListInboundSamlSsoProfilesResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *InboundSamlSsoProfilesListCall) Pages(ctx context.Context, f func(*ListInboundSamlSsoProfilesResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudidentity.inboundSamlSsoProfiles.patch": + +type InboundSamlSsoProfilesPatchCall struct { + s *Service + name string + inboundsamlssoprofile *InboundSamlSsoProfile + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates an InboundSamlSsoProfile. +// +// - name: Output only. Resource name +// (https://cloud.google.com/apis/design/resource_names) of the SAML +// SSO profile. +func (r *InboundSamlSsoProfilesService) Patch(name string, inboundsamlssoprofile *InboundSamlSsoProfile) *InboundSamlSsoProfilesPatchCall { + c := &InboundSamlSsoProfilesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.inboundsamlssoprofile = inboundsamlssoprofile + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. The +// list of fields to be updated. +func (c *InboundSamlSsoProfilesPatchCall) UpdateMask(updateMask string) *InboundSamlSsoProfilesPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesPatchCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesPatchCall) Context(ctx context.Context) *InboundSamlSsoProfilesPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.inboundsamlssoprofile) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.patch" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates an InboundSamlSsoProfile.", + // "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + // "httpMethod": "PATCH", + // "id": "cloudidentity.inboundSamlSsoProfiles.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the SAML SSO profile.", + // "location": "path", + // "pattern": "^inboundSamlSsoProfiles/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "updateMask": { + // "description": "Required. The list of fields to be updated.", + // "format": "google-fieldmask", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "request": { + // "$ref": "InboundSamlSsoProfile" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSamlSsoProfiles.idpCredentials.add": + +type InboundSamlSsoProfilesIdpCredentialsAddCall struct { + s *Service + parent string + addidpcredentialrequest *AddIdpCredentialRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Add: Adds an IdpCredential. Up to 2 credentials are allowed. +// +// - parent: The InboundSamlSsoProfile that owns the IdpCredential. +// Format: `inboundSamlSsoProfiles/{sso_profile_id}`. +func (r *InboundSamlSsoProfilesIdpCredentialsService) Add(parent string, addidpcredentialrequest *AddIdpCredentialRequest) *InboundSamlSsoProfilesIdpCredentialsAddCall { + c := &InboundSamlSsoProfilesIdpCredentialsAddCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.addidpcredentialrequest = addidpcredentialrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesIdpCredentialsAddCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesIdpCredentialsAddCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesIdpCredentialsAddCall) Context(ctx context.Context) *InboundSamlSsoProfilesIdpCredentialsAddCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesIdpCredentialsAddCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesIdpCredentialsAddCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.addidpcredentialrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/idpCredentials:add") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.idpCredentials.add" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesIdpCredentialsAddCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Adds an IdpCredential. Up to 2 credentials are allowed.", + // "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials:add", + // "httpMethod": "POST", + // "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.add", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "Required. The InboundSamlSsoProfile that owns the IdpCredential. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + // "location": "path", + // "pattern": "^inboundSamlSsoProfiles/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+parent}/idpCredentials:add", + // "request": { + // "$ref": "AddIdpCredentialRequest" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSamlSsoProfiles.idpCredentials.delete": + +type InboundSamlSsoProfilesIdpCredentialsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes an IdpCredential. +// +// - name: The resource name +// (https://cloud.google.com/apis/design/resource_names) of the +// IdpCredential to delete. Format: +// `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credent +// ial_id}`. +func (r *InboundSamlSsoProfilesIdpCredentialsService) Delete(name string) *InboundSamlSsoProfilesIdpCredentialsDeleteCall { + c := &InboundSamlSsoProfilesIdpCredentialsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesIdpCredentialsDeleteCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesIdpCredentialsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesIdpCredentialsDeleteCall) Context(ctx context.Context) *InboundSamlSsoProfilesIdpCredentialsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesIdpCredentialsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesIdpCredentialsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.idpCredentials.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesIdpCredentialsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes an IdpCredential.", + // "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + // "httpMethod": "DELETE", + // "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + // "location": "path", + // "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSamlSsoProfiles.idpCredentials.get": + +type InboundSamlSsoProfilesIdpCredentialsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets an IdpCredential. +// +// - name: The resource name +// (https://cloud.google.com/apis/design/resource_names) of the +// IdpCredential to retrieve. Format: +// `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credent +// ial_id}`. +func (r *InboundSamlSsoProfilesIdpCredentialsService) Get(name string) *InboundSamlSsoProfilesIdpCredentialsGetCall { + c := &InboundSamlSsoProfilesIdpCredentialsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesIdpCredentialsGetCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesIdpCredentialsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InboundSamlSsoProfilesIdpCredentialsGetCall) IfNoneMatch(entityTag string) *InboundSamlSsoProfilesIdpCredentialsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesIdpCredentialsGetCall) Context(ctx context.Context) *InboundSamlSsoProfilesIdpCredentialsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesIdpCredentialsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesIdpCredentialsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.idpCredentials.get" call. +// Exactly one of *IdpCredential or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *IdpCredential.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesIdpCredentialsGetCall) Do(opts ...googleapi.CallOption) (*IdpCredential, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &IdpCredential{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets an IdpCredential.", + // "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + // "httpMethod": "GET", + // "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to retrieve. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + // "location": "path", + // "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "IdpCredential" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSamlSsoProfiles.idpCredentials.list": + +type InboundSamlSsoProfilesIdpCredentialsListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Returns a list of IdpCredentials in an InboundSamlSsoProfile. +// +// - parent: The parent, which owns this collection of `IdpCredential`s. +// Format: `inboundSamlSsoProfiles/{sso_profile_id}`. +func (r *InboundSamlSsoProfilesIdpCredentialsService) List(parent string) *InboundSamlSsoProfilesIdpCredentialsListCall { + c := &InboundSamlSsoProfilesIdpCredentialsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// PageSize sets the optional parameter "pageSize": The maximum number +// of `IdpCredential`s to return. The service may return fewer than this +// value. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) PageSize(pageSize int64) *InboundSamlSsoProfilesIdpCredentialsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A page token, +// received from a previous `ListIdpCredentials` call. Provide this to +// retrieve the subsequent page. When paginating, all other parameters +// provided to `ListIdpCredentials` must match the call that provided +// the page token. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) PageToken(pageToken string) *InboundSamlSsoProfilesIdpCredentialsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) Fields(s ...googleapi.Field) *InboundSamlSsoProfilesIdpCredentialsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) IfNoneMatch(entityTag string) *InboundSamlSsoProfilesIdpCredentialsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) Context(ctx context.Context) *InboundSamlSsoProfilesIdpCredentialsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/idpCredentials") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSamlSsoProfiles.idpCredentials.list" call. +// Exactly one of *ListIdpCredentialsResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *ListIdpCredentialsResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) Do(opts ...googleapi.CallOption) (*ListIdpCredentialsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ListIdpCredentialsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a list of IdpCredentials in an InboundSamlSsoProfile.", + // "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials", + // "httpMethod": "GET", + // "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "pageSize": { + // "description": "The maximum number of `IdpCredential`s to return. The service may return fewer than this value.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A page token, received from a previous `ListIdpCredentials` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListIdpCredentials` must match the call that provided the page token.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The parent, which owns this collection of `IdpCredential`s. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + // "location": "path", + // "pattern": "^inboundSamlSsoProfiles/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+parent}/idpCredentials", + // "response": { + // "$ref": "ListIdpCredentialsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *InboundSamlSsoProfilesIdpCredentialsListCall) Pages(ctx context.Context, f func(*ListIdpCredentialsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudidentity.inboundSsoAssignments.create": + +type InboundSsoAssignmentsCreateCall struct { + s *Service + inboundssoassignment *InboundSsoAssignment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates an InboundSsoAssignment for users and devices in a +// `Customer` under a given `Group` or `OrgUnit`. +func (r *InboundSsoAssignmentsService) Create(inboundssoassignment *InboundSsoAssignment) *InboundSsoAssignmentsCreateCall { + c := &InboundSsoAssignmentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.inboundssoassignment = inboundssoassignment + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSsoAssignmentsCreateCall) Fields(s ...googleapi.Field) *InboundSsoAssignmentsCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSsoAssignmentsCreateCall) Context(ctx context.Context) *InboundSsoAssignmentsCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSsoAssignmentsCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSsoAssignmentsCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.inboundssoassignment) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inboundSsoAssignments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSsoAssignments.create" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSsoAssignmentsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates an InboundSsoAssignment for users and devices in a `Customer` under a given `Group` or `OrgUnit`.", + // "flatPath": "v1/inboundSsoAssignments", + // "httpMethod": "POST", + // "id": "cloudidentity.inboundSsoAssignments.create", + // "parameterOrder": [], + // "parameters": {}, + // "path": "v1/inboundSsoAssignments", + // "request": { + // "$ref": "InboundSsoAssignment" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSsoAssignments.delete": + +type InboundSsoAssignmentsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes an InboundSsoAssignment. To disable SSO, Create (or +// Update) an assignment that has `sso_mode` == `SSO_OFF`. +// +// - name: The resource name +// (https://cloud.google.com/apis/design/resource_names) of the +// InboundSsoAssignment to delete. Format: +// `inboundSsoAssignments/{assignment}`. +func (r *InboundSsoAssignmentsService) Delete(name string) *InboundSsoAssignmentsDeleteCall { + c := &InboundSsoAssignmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSsoAssignmentsDeleteCall) Fields(s ...googleapi.Field) *InboundSsoAssignmentsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSsoAssignmentsDeleteCall) Context(ctx context.Context) *InboundSsoAssignmentsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSsoAssignmentsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSsoAssignmentsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSsoAssignments.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSsoAssignmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes an InboundSsoAssignment. To disable SSO, Create (or Update) an assignment that has `sso_mode` == `SSO_OFF`.", + // "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + // "httpMethod": "DELETE", + // "id": "cloudidentity.inboundSsoAssignments.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to delete. Format: `inboundSsoAssignments/{assignment}`", + // "location": "path", + // "pattern": "^inboundSsoAssignments/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSsoAssignments.get": + +type InboundSsoAssignmentsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets an InboundSsoAssignment. +// +// - name: The resource name +// (https://cloud.google.com/apis/design/resource_names) of the +// InboundSsoAssignment to fetch. Format: +// `inboundSsoAssignments/{assignment}`. +func (r *InboundSsoAssignmentsService) Get(name string) *InboundSsoAssignmentsGetCall { + c := &InboundSsoAssignmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSsoAssignmentsGetCall) Fields(s ...googleapi.Field) *InboundSsoAssignmentsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InboundSsoAssignmentsGetCall) IfNoneMatch(entityTag string) *InboundSsoAssignmentsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSsoAssignmentsGetCall) Context(ctx context.Context) *InboundSsoAssignmentsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSsoAssignmentsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSsoAssignmentsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSsoAssignments.get" call. +// Exactly one of *InboundSsoAssignment or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *InboundSsoAssignment.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InboundSsoAssignmentsGetCall) Do(opts ...googleapi.CallOption) (*InboundSsoAssignment, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &InboundSsoAssignment{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets an InboundSsoAssignment.", + // "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + // "httpMethod": "GET", + // "id": "cloudidentity.inboundSsoAssignments.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to fetch. Format: `inboundSsoAssignments/{assignment}`", + // "location": "path", + // "pattern": "^inboundSsoAssignments/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "InboundSsoAssignment" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudidentity.inboundSsoAssignments.list": + +type InboundSsoAssignmentsListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the InboundSsoAssignments for a `Customer`. +func (r *InboundSsoAssignmentsService) List() *InboundSsoAssignmentsListCall { + c := &InboundSsoAssignmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// Filter sets the optional parameter "filter": A CEL expression to +// filter the results. The only currently-supported filter is filtering +// by customer. For example: `customer==customers/C0123abc`. Omitting +// the filter or specifying a filter of +// `customer==customers/my_customer` will return the assignments for the +// customer that the caller (authenticated user) belongs to. +func (c *InboundSsoAssignmentsListCall) Filter(filter string) *InboundSsoAssignmentsListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// PageSize sets the optional parameter "pageSize": The maximum number +// of assignments to return. The service may return fewer than this +// value. If omitted (or defaulted to zero) the server will use a +// sensible default. This default may change over time. The maximum +// allowed value is 100, though requests with page_size greater than +// that will be silently interpreted as having this maximum value. This +// may increase in the futue. +func (c *InboundSsoAssignmentsListCall) PageSize(pageSize int64) *InboundSsoAssignmentsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A page token, +// received from a previous `ListInboundSsoAssignments` call. Provide +// this to retrieve the subsequent page. When paginating, all other +// parameters provided to `ListInboundSsoAssignments` must match the +// call that provided the page token. +func (c *InboundSsoAssignmentsListCall) PageToken(pageToken string) *InboundSsoAssignmentsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSsoAssignmentsListCall) Fields(s ...googleapi.Field) *InboundSsoAssignmentsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InboundSsoAssignmentsListCall) IfNoneMatch(entityTag string) *InboundSsoAssignmentsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSsoAssignmentsListCall) Context(ctx context.Context) *InboundSsoAssignmentsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSsoAssignmentsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSsoAssignmentsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inboundSsoAssignments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSsoAssignments.list" call. +// Exactly one of *ListInboundSsoAssignmentsResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListInboundSsoAssignmentsResponse.ServerResponse.Header or +// (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *InboundSsoAssignmentsListCall) Do(opts ...googleapi.CallOption) (*ListInboundSsoAssignmentsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ListInboundSsoAssignmentsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists the InboundSsoAssignments for a `Customer`.", + // "flatPath": "v1/inboundSsoAssignments", + // "httpMethod": "GET", + // "id": "cloudidentity.inboundSsoAssignments.list", + // "parameterOrder": [], + // "parameters": { + // "filter": { + // "description": "A CEL expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", + // "location": "query", + // "type": "string" + // }, + // "pageSize": { + // "description": "The maximum number of assignments to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100, though requests with page_size greater than that will be silently interpreted as having this maximum value. This may increase in the futue.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A page token, received from a previous `ListInboundSsoAssignments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSsoAssignments` must match the call that provided the page token.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/inboundSsoAssignments", + // "response": { + // "$ref": "ListInboundSsoAssignmentsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *InboundSsoAssignmentsListCall) Pages(ctx context.Context, f func(*ListInboundSsoAssignmentsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudidentity.inboundSsoAssignments.patch": + +type InboundSsoAssignmentsPatchCall struct { + s *Service + name string + inboundssoassignment *InboundSsoAssignment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates an InboundSsoAssignment. The body of this request is +// the `inbound_sso_assignment` field and the `update_mask` is relative +// to that. For example: a PATCH to +// `/v1/inboundSsoAssignments/0abcdefg1234567&update_mask=rank` with a +// body of `{ "rank": 1 }` moves that (presumably group-targeted) SSO +// assignment to the highest priority and shifts any other +// group-targeted assignments down in priority. +// +// - name: Output only. Resource name +// (https://cloud.google.com/apis/design/resource_names) of the +// Inbound SSO Assignment. +func (r *InboundSsoAssignmentsService) Patch(name string, inboundssoassignment *InboundSsoAssignment) *InboundSsoAssignmentsPatchCall { + c := &InboundSsoAssignmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.inboundssoassignment = inboundssoassignment + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. The +// list of fields to be updated. +func (c *InboundSsoAssignmentsPatchCall) UpdateMask(updateMask string) *InboundSsoAssignmentsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InboundSsoAssignmentsPatchCall) Fields(s ...googleapi.Field) *InboundSsoAssignmentsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InboundSsoAssignmentsPatchCall) Context(ctx context.Context) *InboundSsoAssignmentsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InboundSsoAssignmentsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InboundSsoAssignmentsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.inboundssoassignment) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudidentity.inboundSsoAssignments.patch" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InboundSsoAssignmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates an InboundSsoAssignment. The body of this request is the `inbound_sso_assignment` field and the `update_mask` is relative to that. For example: a PATCH to `/v1/inboundSsoAssignments/0abcdefg1234567\u0026update_mask=rank` with a body of `{ \"rank\": 1 }` moves that (presumably group-targeted) SSO assignment to the highest priority and shifts any other group-targeted assignments down in priority.", + // "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + // "httpMethod": "PATCH", + // "id": "cloudidentity.inboundSsoAssignments.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Inbound SSO Assignment.", + // "location": "path", + // "pattern": "^inboundSsoAssignments/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "updateMask": { + // "description": "Required. The list of fields to be updated.", + // "format": "google-fieldmask", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "request": { + // "$ref": "InboundSsoAssignment" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} diff --git a/dataproc/v1/dataproc-api.json b/dataproc/v1/dataproc-api.json index cc645938239..0f948c4110d 100644 --- a/dataproc/v1/dataproc-api.json +++ b/dataproc/v1/dataproc-api.json @@ -1444,7 +1444,7 @@ "type": "string" }, "gracefulDecommissionTimeout": { - "description": "Optional. Timeout for graceful YARN decomissioning. Graceful decommissioning allows removing nodes from the cluster without interrupting jobs in progress. Timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", + "description": "Optional. Timeout for graceful YARN decommissioning. Graceful decommissioning allows removing nodes from the cluster without interrupting jobs in progress. Timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", "format": "google-duration", "location": "query", "type": "string" @@ -2661,7 +2661,7 @@ } } }, - "revision": "20221207", + "revision": "20230103", "rootUrl": "https://dataproc.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -3507,7 +3507,7 @@ "id": "ExecutionConfig", "properties": { "idleTtl": { - "description": "Optional. The duration to keep the session alive while it's idling. Passing this threshold will cause the session to be terminated. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). Defaults to 4 hours if not set.", + "description": "Optional. The duration to keep the session alive while it's idling. Passing this threshold will cause the session to be terminated. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). Defaults to 4 hours if not set. If both ttl and idle_ttl are specified, the conditions are treated as and OR: the workload will be terminated when it has been idle for idle_ttl or when the ttl has passed, whichever comes first.", "format": "google-duration", "type": "string" }, @@ -4698,7 +4698,8 @@ "SPARK", "YARN", "SPARK_HISTORY_SERVER", - "HIVESERVER2" + "HIVESERVER2", + "HIVEMETASTORE" ], "enumDescriptions": [ "Required unspecified metric source.", @@ -4707,7 +4708,8 @@ "Spark metric source.", "YARN metric source.", "Spark History Server metric source.", - "Hiveserver2 metric source." + "Hiveserver2 metric source.", + "hivemetastore metric source" ], "type": "string" } @@ -5271,7 +5273,7 @@ "type": "string" }, "gracefulDecommissionTimeout": { - "description": "Optional. Timeout for graceful YARN decomissioning. Graceful decommissioning facilitates the removal of cluster nodes without interrupting jobs in progress. The timeout specifies the amount of time to wait for jobs finish before forcefully removing nodes. The default timeout is 0 for forceful decommissioning, and the maximum timeout period is 1 day. (see JSON Mapping—Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).graceful_decommission_timeout is supported in Dataproc image versions 1.2+.", + "description": "Optional. Timeout for graceful YARN decommissioning. Graceful decommissioning facilitates the removal of cluster nodes without interrupting jobs in progress. The timeout specifies the amount of time to wait for jobs finish before forcefully removing nodes. The default timeout is 0 for forceful decommissioning, and the maximum timeout period is 1 day. (see JSON Mapping—Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).graceful_decommission_timeout is supported in Dataproc image versions 1.2+.", "format": "google-duration", "type": "string" }, diff --git a/dataproc/v1/dataproc-gen.go b/dataproc/v1/dataproc-gen.go index d714cca1818..c4aa7b1b5c5 100644 --- a/dataproc/v1/dataproc-gen.go +++ b/dataproc/v1/dataproc-gen.go @@ -1642,7 +1642,10 @@ type ExecutionConfig struct { // terminated. Minimum value is 10 minutes; maximum value is 14 days // (see JSON representation of Duration // (https://developers.google.com/protocol-buffers/docs/proto3#json)). - // Defaults to 4 hours if not set. + // Defaults to 4 hours if not set. If both ttl and idle_ttl are + // specified, the conditions are treated as and OR: the workload will be + // terminated when it has been idle for idle_ttl or when the ttl has + // passed, whichever comes first. IdleTtl string `json:"idleTtl,omitempty"` // KmsKey: Optional. The Cloud KMS key to use for encryption. @@ -3662,6 +3665,7 @@ type Metric struct { // "YARN" - YARN metric source. // "SPARK_HISTORY_SERVER" - Spark History Server metric source. // "HIVESERVER2" - Hiveserver2 metric source. + // "HIVEMETASTORE" - hivemetastore metric source MetricSource string `json:"metricSource,omitempty"` // ForceSendFields is a list of field names (e.g. "MetricOverrides") to @@ -4562,7 +4566,7 @@ type RepairClusterRequest struct { ClusterUuid string `json:"clusterUuid,omitempty"` // GracefulDecommissionTimeout: Optional. Timeout for graceful YARN - // decomissioning. Graceful decommissioning facilitates the removal of + // decommissioning. Graceful decommissioning facilitates the removal of // cluster nodes without interrupting jobs in progress. The timeout // specifies the amount of time to wait for jobs finish before // forcefully removing nodes. The default timeout is 0 for forceful @@ -13061,7 +13065,7 @@ func (r *ProjectsRegionsClustersService) Patch(projectId string, region string, // GracefulDecommissionTimeout sets the optional parameter // "gracefulDecommissionTimeout": Timeout for graceful YARN -// decomissioning. Graceful decommissioning allows removing nodes from +// decommissioning. Graceful decommissioning allows removing nodes from // the cluster without interrupting jobs in progress. Timeout specifies // how long to wait for jobs in progress to finish before forcefully // removing nodes (and potentially interrupting jobs). Default timeout @@ -13220,7 +13224,7 @@ func (c *ProjectsRegionsClustersPatchCall) Do(opts ...googleapi.CallOption) (*Op // "type": "string" // }, // "gracefulDecommissionTimeout": { - // "description": "Optional. Timeout for graceful YARN decomissioning. Graceful decommissioning allows removing nodes from the cluster without interrupting jobs in progress. Timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", + // "description": "Optional. Timeout for graceful YARN decommissioning. Graceful decommissioning allows removing nodes from the cluster without interrupting jobs in progress. Timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", // "format": "google-duration", // "location": "query", // "type": "string" diff --git a/eventarc/v1/eventarc-api.json b/eventarc/v1/eventarc-api.json index 3a4136bff7b..74810f9d982 100644 --- a/eventarc/v1/eventarc-api.json +++ b/eventarc/v1/eventarc-api.json @@ -1197,7 +1197,7 @@ } } }, - "revision": "20221207", + "revision": "20230113", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { @@ -2081,7 +2081,7 @@ }, "transport": { "$ref": "Transport", - "description": "Optional. To deliver messages, Eventarc might use other GCP products as a transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes." + "description": "Optional. To deliver messages, Eventarc might use other Google Cloud products as a transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes." }, "uid": { "description": "Output only. Server-assigned unique identifier for the trigger. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.", diff --git a/eventarc/v1/eventarc-gen.go b/eventarc/v1/eventarc-gen.go index 2d93f2a9af7..3af5b26c6e5 100644 --- a/eventarc/v1/eventarc-gen.go +++ b/eventarc/v1/eventarc-gen.go @@ -1878,9 +1878,9 @@ type Trigger struct { ServiceAccount string `json:"serviceAccount,omitempty"` // Transport: Optional. To deliver messages, Eventarc might use other - // GCP products as a transport intermediary. This field contains a - // reference to that transport intermediary. This information can be - // used for debugging purposes. + // Google Cloud products as a transport intermediary. This field + // contains a reference to that transport intermediary. This information + // can be used for debugging purposes. Transport *Transport `json:"transport,omitempty"` // Uid: Output only. Server-assigned unique identifier for the trigger. diff --git a/gkehub/v1alpha/gkehub-api.json b/gkehub/v1alpha/gkehub-api.json index c640b145b68..ceef531af5d 100644 --- a/gkehub/v1alpha/gkehub-api.json +++ b/gkehub/v1alpha/gkehub-api.json @@ -1179,7 +1179,7 @@ } } }, - "revision": "20221207", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -3444,6 +3444,32 @@ }, "type": "object" }, + "PolicyControllerBundleInstallSpec": { + "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", + "id": "PolicyControllerBundleInstallSpec", + "properties": { + "exemptedNamespaces": { + "description": "the set of namespaces to be exempted from the bundle", + "items": { + "type": "string" + }, + "type": "array" + }, + "management": { + "description": "Management specifies how the bundle will be managed by the controller.", + "enum": [ + "MANAGEMENT_UNSPECIFIED", + "INSTALLED" + ], + "enumDescriptions": [ + "No Management strategy has been specified.", + "The entity should be insistently reconciled by the Hub controller" + ], + "type": "string" + } + }, + "type": "object" + }, "PolicyControllerHubConfig": { "description": "Configuration for Policy Controller", "id": "PolicyControllerHubConfig", @@ -3488,6 +3514,10 @@ "description": "Enables the ability to mutate resources using Policy Controller.", "type": "boolean" }, + "policyContent": { + "$ref": "PolicyControllerPolicyContentSpec", + "description": "Specifies the desired policy content on the cluster" + }, "referentialRulesEnabled": { "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", "type": "boolean" @@ -3522,7 +3552,14 @@ "additionalProperties": { "$ref": "PolicyControllerOnClusterState" }, - "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\" 4. \"constraint template library\"", + "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", + "type": "object" + }, + "contentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the template library and any bundles included in the chosen version of the manifest", "type": "object" }, "state": { @@ -3615,6 +3652,20 @@ }, "type": "object" }, + "PolicyControllerPolicyContentSpec": { + "description": "PolicyContentSpec defines the user's desired content configuration on the cluster.", + "id": "PolicyControllerPolicyContentSpec", + "properties": { + "bundles": { + "additionalProperties": { + "$ref": "PolicyControllerBundleInstallSpec" + }, + "description": "map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.", + "type": "object" + } + }, + "type": "object" + }, "PolicyControllerTemplateLibraryConfig": { "description": "The config specifying which default library templates to install.", "id": "PolicyControllerTemplateLibraryConfig", diff --git a/gkehub/v1alpha/gkehub-gen.go b/gkehub/v1alpha/gkehub-gen.go index c9c738c3aa5..63a6b92a168 100644 --- a/gkehub/v1alpha/gkehub-gen.go +++ b/gkehub/v1alpha/gkehub-gen.go @@ -3931,6 +3931,47 @@ func (s *Policy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// PolicyControllerBundleInstallSpec: BundleInstallSpec is the +// specification configuration for a single managed bundle. +type PolicyControllerBundleInstallSpec struct { + // ExemptedNamespaces: the set of namespaces to be exempted from the + // bundle + ExemptedNamespaces []string `json:"exemptedNamespaces,omitempty"` + + // Management: Management specifies how the bundle will be managed by + // the controller. + // + // Possible values: + // "MANAGEMENT_UNSPECIFIED" - No Management strategy has been + // specified. + // "INSTALLED" - The entity should be insistently reconciled by the + // Hub controller + Management string `json:"management,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ExemptedNamespaces") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ExemptedNamespaces") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *PolicyControllerBundleInstallSpec) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerBundleInstallSpec + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // PolicyControllerHubConfig: Configuration for Policy Controller type PolicyControllerHubConfig struct { // AuditIntervalSeconds: Sets the interval for Policy Controller Audit @@ -3969,6 +4010,9 @@ type PolicyControllerHubConfig struct { // Controller. MutationEnabled bool `json:"mutationEnabled,omitempty"` + // PolicyContent: Specifies the desired policy content on the cluster + PolicyContent *PolicyControllerPolicyContentSpec `json:"policyContent,omitempty"` + // ReferentialRulesEnabled: Enables the ability to use Constraint // Templates that reference to objects other than the object currently // being evaluated. @@ -4042,10 +4086,13 @@ func (s *PolicyControllerMembershipSpec) MarshalJSON() ([]byte, error) { // single cluster. type PolicyControllerMembershipState struct { // ComponentStates: Currently these include (also serving as map keys): - // 1. "admission" 2. "audit" 3. "mutation" 4. "constraint template - // library" + // 1. "admission" 2. "audit" 3. "mutation" ComponentStates map[string]PolicyControllerOnClusterState `json:"componentStates,omitempty"` + // ContentStates: The state of the template library and any bundles + // included in the chosen version of the manifest + ContentStates map[string]PolicyControllerOnClusterState `json:"contentStates,omitempty"` + // State: The overall Policy Controller lifecycle state observed by the // Hub Feature controller. // @@ -4220,6 +4267,37 @@ func (s *PolicyControllerOnClusterState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// PolicyControllerPolicyContentSpec: PolicyContentSpec defines the +// user's desired content configuration on the cluster. +type PolicyControllerPolicyContentSpec struct { + // Bundles: map of bundle name to BundleInstallSpec. The bundle name + // maps to the `bundleName` key in the + // `policycontroller.gke.io/constraintData` annotation on a constraint. + Bundles map[string]PolicyControllerBundleInstallSpec `json:"bundles,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Bundles") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Bundles") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PolicyControllerPolicyContentSpec) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerPolicyContentSpec + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // PolicyControllerTemplateLibraryConfig: The config specifying which // default library templates to install. type PolicyControllerTemplateLibraryConfig struct { diff --git a/gkehub/v1beta/gkehub-api.json b/gkehub/v1beta/gkehub-api.json index d44d32728ca..6b3589e51b0 100644 --- a/gkehub/v1beta/gkehub-api.json +++ b/gkehub/v1beta/gkehub-api.json @@ -670,7 +670,7 @@ } } }, - "revision": "20221207", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -2368,6 +2368,32 @@ }, "type": "object" }, + "PolicyControllerBundleInstallSpec": { + "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", + "id": "PolicyControllerBundleInstallSpec", + "properties": { + "exemptedNamespaces": { + "description": "the set of namespaces to be exempted from the bundle", + "items": { + "type": "string" + }, + "type": "array" + }, + "management": { + "description": "Management specifies how the bundle will be managed by the controller.", + "enum": [ + "MANAGEMENT_UNSPECIFIED", + "INSTALLED" + ], + "enumDescriptions": [ + "No Management strategy has been specified.", + "The entity should be insistently reconciled by the Hub controller" + ], + "type": "string" + } + }, + "type": "object" + }, "PolicyControllerHubConfig": { "description": "Configuration for Policy Controller", "id": "PolicyControllerHubConfig", @@ -2412,6 +2438,10 @@ "description": "Enables the ability to mutate resources using Policy Controller.", "type": "boolean" }, + "policyContent": { + "$ref": "PolicyControllerPolicyContentSpec", + "description": "Specifies the desired policy content on the cluster" + }, "referentialRulesEnabled": { "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", "type": "boolean" @@ -2446,7 +2476,14 @@ "additionalProperties": { "$ref": "PolicyControllerOnClusterState" }, - "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\" 4. \"constraint template library\"", + "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", + "type": "object" + }, + "contentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the template library and any bundles included in the chosen version of the manifest", "type": "object" }, "state": { @@ -2539,6 +2576,20 @@ }, "type": "object" }, + "PolicyControllerPolicyContentSpec": { + "description": "PolicyContentSpec defines the user's desired content configuration on the cluster.", + "id": "PolicyControllerPolicyContentSpec", + "properties": { + "bundles": { + "additionalProperties": { + "$ref": "PolicyControllerBundleInstallSpec" + }, + "description": "map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.", + "type": "object" + } + }, + "type": "object" + }, "PolicyControllerTemplateLibraryConfig": { "description": "The config specifying which default library templates to install.", "id": "PolicyControllerTemplateLibraryConfig", diff --git a/gkehub/v1beta/gkehub-gen.go b/gkehub/v1beta/gkehub-gen.go index 00e11eaf245..7a90dcbea12 100644 --- a/gkehub/v1beta/gkehub-gen.go +++ b/gkehub/v1beta/gkehub-gen.go @@ -2917,6 +2917,47 @@ func (s *Policy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// PolicyControllerBundleInstallSpec: BundleInstallSpec is the +// specification configuration for a single managed bundle. +type PolicyControllerBundleInstallSpec struct { + // ExemptedNamespaces: the set of namespaces to be exempted from the + // bundle + ExemptedNamespaces []string `json:"exemptedNamespaces,omitempty"` + + // Management: Management specifies how the bundle will be managed by + // the controller. + // + // Possible values: + // "MANAGEMENT_UNSPECIFIED" - No Management strategy has been + // specified. + // "INSTALLED" - The entity should be insistently reconciled by the + // Hub controller + Management string `json:"management,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ExemptedNamespaces") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ExemptedNamespaces") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *PolicyControllerBundleInstallSpec) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerBundleInstallSpec + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // PolicyControllerHubConfig: Configuration for Policy Controller type PolicyControllerHubConfig struct { // AuditIntervalSeconds: Sets the interval for Policy Controller Audit @@ -2955,6 +2996,9 @@ type PolicyControllerHubConfig struct { // Controller. MutationEnabled bool `json:"mutationEnabled,omitempty"` + // PolicyContent: Specifies the desired policy content on the cluster + PolicyContent *PolicyControllerPolicyContentSpec `json:"policyContent,omitempty"` + // ReferentialRulesEnabled: Enables the ability to use Constraint // Templates that reference to objects other than the object currently // being evaluated. @@ -3028,10 +3072,13 @@ func (s *PolicyControllerMembershipSpec) MarshalJSON() ([]byte, error) { // single cluster. type PolicyControllerMembershipState struct { // ComponentStates: Currently these include (also serving as map keys): - // 1. "admission" 2. "audit" 3. "mutation" 4. "constraint template - // library" + // 1. "admission" 2. "audit" 3. "mutation" ComponentStates map[string]PolicyControllerOnClusterState `json:"componentStates,omitempty"` + // ContentStates: The state of the template library and any bundles + // included in the chosen version of the manifest + ContentStates map[string]PolicyControllerOnClusterState `json:"contentStates,omitempty"` + // State: The overall Policy Controller lifecycle state observed by the // Hub Feature controller. // @@ -3206,6 +3253,37 @@ func (s *PolicyControllerOnClusterState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// PolicyControllerPolicyContentSpec: PolicyContentSpec defines the +// user's desired content configuration on the cluster. +type PolicyControllerPolicyContentSpec struct { + // Bundles: map of bundle name to BundleInstallSpec. The bundle name + // maps to the `bundleName` key in the + // `policycontroller.gke.io/constraintData` annotation on a constraint. + Bundles map[string]PolicyControllerBundleInstallSpec `json:"bundles,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Bundles") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Bundles") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PolicyControllerPolicyContentSpec) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerPolicyContentSpec + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // PolicyControllerTemplateLibraryConfig: The config specifying which // default library templates to install. type PolicyControllerTemplateLibraryConfig struct { diff --git a/gmail/v1/gmail-api.json b/gmail/v1/gmail-api.json index 50fae143316..17cc4bd0102 100644 --- a/gmail/v1/gmail-api.json +++ b/gmail/v1/gmail-api.json @@ -1638,7 +1638,7 @@ "identities": { "methods": { "create": { - "description": "Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity.", "flatPath": "gmail/v1/users/{userId}/settings/cse/identities", "httpMethod": "POST", "id": "gmail.users.settings.cse.identities.create", @@ -1667,7 +1667,7 @@ ] }, "delete": { - "description": "Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration.", "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", "httpMethod": "DELETE", "id": "gmail.users.settings.cse.identities.delete", @@ -1697,7 +1697,7 @@ ] }, "get": { - "description": "Retrieves a client-side encryption identity configuration. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Retrieves a client-side encryption identity configuration.", "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", "httpMethod": "GET", "id": "gmail.users.settings.cse.identities.get", @@ -1733,7 +1733,7 @@ ] }, "list": { - "description": "Lists the client-side encrypted identities for an authenticated user. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Lists the client-side encrypted identities for an authenticated user.", "flatPath": "gmail/v1/users/{userId}/settings/cse/identities", "httpMethod": "GET", "id": "gmail.users.settings.cse.identities.list", @@ -1774,7 +1774,7 @@ ] }, "patch": { - "description": "Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's [S/MIME certificate profiles](https://support.google.com/a/answer/7300887). [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's [S/MIME certificate profiles](https://support.google.com/a/answer/7300887).", "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}", "httpMethod": "PATCH", "id": "gmail.users.settings.cse.identities.patch", @@ -1814,7 +1814,7 @@ "keypairs": { "methods": { "create": { - "description": "Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user.", "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", "httpMethod": "POST", "id": "gmail.users.settings.cse.keypairs.create", @@ -1843,7 +1843,7 @@ ] }, "disable": { - "description": "Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method.", "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable", "httpMethod": "POST", "id": "gmail.users.settings.cse.keypairs.disable", @@ -1879,7 +1879,7 @@ ] }, "enable": { - "description": "Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities.", "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable", "httpMethod": "POST", "id": "gmail.users.settings.cse.keypairs.enable", @@ -1915,7 +1915,7 @@ ] }, "get": { - "description": "Retrieves an existing client-side encryption key pair. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Retrieves an existing client-side encryption key pair.", "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}", "httpMethod": "GET", "id": "gmail.users.settings.cse.keypairs.get", @@ -1951,7 +1951,7 @@ ] }, "list": { - "description": "Lists client-side encryption key pairs for an authenticated user. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Lists client-side encryption key pairs for an authenticated user.", "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", "httpMethod": "GET", "id": "gmail.users.settings.cse.keypairs.list", @@ -1992,7 +1992,7 @@ ] }, "obliterate": { - "description": "Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + "description": "Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages.", "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate", "httpMethod": "POST", "id": "gmail.users.settings.cse.keypairs.obliterate", @@ -3077,7 +3077,7 @@ } } }, - "revision": "20221219", + "revision": "20230116", "rootUrl": "https://gmail.googleapis.com/", "schemas": { "AutoForwarding": { @@ -3154,7 +3154,7 @@ "type": "object" }, "CseIdentity": { - "description": "[Beta](https://workspace.google.com/terms/service-terms/index.html). The client-side encryption (CSE) configuration for the email address of an authenticated user. Gmail uses CSE configurations to save drafts of client-side encrypted email messages, and to sign and send encrypted email messages.", + "description": "The client-side encryption (CSE) configuration for the email address of an authenticated user. Gmail uses CSE configurations to save drafts of client-side encrypted email messages, and to sign and send encrypted email messages.", "id": "CseIdentity", "properties": { "emailAddress": { @@ -3169,7 +3169,7 @@ "type": "object" }, "CseKeyPair": { - "description": "[Beta](https://workspace.google.com/terms/service-terms/index.html). A client-side encryption S/MIME key pair, which is comprised of a public key, its certificate chain, and metadata for its paired private key. Gmail uses the key pair to complete the following tasks: - Sign outgoing client-side encrypted messages. - Save and reopen drafts of client-side encrypted messages. - Save and reopen sent messages. - Decrypt incoming or archived S/MIME messages.", + "description": "A client-side encryption S/MIME key pair, which is comprised of a public key, its certificate chain, and metadata for its paired private key. Gmail uses the key pair to complete the following tasks: - Sign outgoing client-side encrypted messages. - Save and reopen drafts of client-side encrypted messages. - Save and reopen sent messages. - Decrypt incoming or archived S/MIME messages.", "id": "CseKeyPair", "properties": { "disableTime": { diff --git a/gmail/v1/gmail-gen.go b/gmail/v1/gmail-gen.go index 30d0b980ecf..7c4b04fd3ef 100644 --- a/gmail/v1/gmail-gen.go +++ b/gmail/v1/gmail-gen.go @@ -493,12 +493,10 @@ func (s *BatchModifyMessagesRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// CseIdentity: Beta -// (https://workspace.google.com/terms/service-terms/index.html). The -// client-side encryption (CSE) configuration for the email address of -// an authenticated user. Gmail uses CSE configurations to save drafts -// of client-side encrypted email messages, and to sign and send -// encrypted email messages. +// CseIdentity: The client-side encryption (CSE) configuration for the +// email address of an authenticated user. Gmail uses CSE configurations +// to save drafts of client-side encrypted email messages, and to sign +// and send encrypted email messages. type CseIdentity struct { // EmailAddress: The email address for the sending identity. The email // address must be the primary email address of the authenticated user. @@ -535,14 +533,12 @@ func (s *CseIdentity) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// CseKeyPair: Beta -// (https://workspace.google.com/terms/service-terms/index.html). A -// client-side encryption S/MIME key pair, which is comprised of a -// public key, its certificate chain, and metadata for its paired -// private key. Gmail uses the key pair to complete the following tasks: -// - Sign outgoing client-side encrypted messages. - Save and reopen -// drafts of client-side encrypted messages. - Save and reopen sent -// messages. - Decrypt incoming or archived S/MIME messages. +// CseKeyPair: A client-side encryption S/MIME key pair, which is +// comprised of a public key, its certificate chain, and metadata for +// its paired private key. Gmail uses the key pair to complete the +// following tasks: - Sign outgoing client-side encrypted messages. - +// Save and reopen drafts of client-side encrypted messages. - Save and +// reopen sent messages. - Decrypt incoming or archived S/MIME messages. type CseKeyPair struct { // DisableTime: Output only. If a key pair is set to `DISABLED`, the // time that the key pair's state changed from `ENABLED` to `DISABLED`. @@ -9133,8 +9129,7 @@ type UsersSettingsCseIdentitiesCreateCall struct { // that's authorized to send mail from the user account. Google // publishes the S/MIME certificate to a shared domain-wide directory so // that people within a Google Workspace organization can encrypt and -// send mail to the identity. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// send mail to the identity. // // - userId: The requester's primary email address. To indicate the // authenticated user, you can use the special value `me`. @@ -9236,7 +9231,7 @@ func (c *UsersSettingsCseIdentitiesCreateCall) Do(opts ...googleapi.CallOption) } return ret, nil // { - // "description": "Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/identities", // "httpMethod": "POST", // "id": "gmail.users.settings.cse.identities.create", @@ -9282,8 +9277,7 @@ type UsersSettingsCseIdentitiesDeleteCall struct { // user can no longer use the identity to send encrypted messages. You // cannot restore the identity after you delete it. Instead, use the // CreateCseIdentity method to create another identity with the same -// configuration. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// configuration. // // - cseEmailAddress: The primary email address associated with the // client-side encryption identity configuration that's removed. @@ -9358,7 +9352,7 @@ func (c *UsersSettingsCseIdentitiesDeleteCall) Do(opts ...googleapi.CallOption) } return nil // { - // "description": "Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", // "httpMethod": "DELETE", // "id": "gmail.users.settings.cse.identities.delete", @@ -9402,8 +9396,7 @@ type UsersSettingsCseIdentitiesGetCall struct { header_ http.Header } -// Get: Retrieves a client-side encryption identity configuration. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// Get: Retrieves a client-side encryption identity configuration. // // - cseEmailAddress: The primary email address associated with the // client-side encryption identity configuration that's retrieved. @@ -9516,7 +9509,7 @@ func (c *UsersSettingsCseIdentitiesGetCall) Do(opts ...googleapi.CallOption) (*C } return ret, nil // { - // "description": "Retrieves a client-side encryption identity configuration. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Retrieves a client-side encryption identity configuration.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", // "httpMethod": "GET", // "id": "gmail.users.settings.cse.identities.get", @@ -9566,8 +9559,7 @@ type UsersSettingsCseIdentitiesListCall struct { } // List: Lists the client-side encrypted identities for an authenticated -// user. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// user. // // - userId: The requester's primary email address. To indicate the // authenticated user, you can use the special value `me`. @@ -9692,7 +9684,7 @@ func (c *UsersSettingsCseIdentitiesListCall) Do(opts ...googleapi.CallOption) (* } return ret, nil // { - // "description": "Lists the client-side encrypted identities for an authenticated user. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Lists the client-side encrypted identities for an authenticated user.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/identities", // "httpMethod": "GET", // "id": "gmail.users.settings.cse.identities.list", @@ -9771,8 +9763,7 @@ type UsersSettingsCseIdentitiesPatchCall struct { // Patch: Associates a different key pair with an existing client-side // encryption identity. The updated key pair must validate against // Google's S/MIME certificate profiles -// (https://support.google.com/a/answer/7300887). Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// (https://support.google.com/a/answer/7300887). // // - emailAddress: The email address of the client-side encryption // identity to update. @@ -9878,7 +9869,7 @@ func (c *UsersSettingsCseIdentitiesPatchCall) Do(opts ...googleapi.CallOption) ( } return ret, nil // { - // "description": "Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's [S/MIME certificate profiles](https://support.google.com/a/answer/7300887). [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's [S/MIME certificate profiles](https://support.google.com/a/answer/7300887).", // "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}", // "httpMethod": "PATCH", // "id": "gmail.users.settings.cse.identities.patch", @@ -9929,8 +9920,7 @@ type UsersSettingsCseKeypairsCreateCall struct { // Create: Creates and uploads a client-side encryption S/MIME public // key certificate chain and private key metadata for the authenticated -// user. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// user. // // - userId: The requester's primary email address. To indicate the // authenticated user, you can use the special value `me`. @@ -10032,7 +10022,7 @@ func (c *UsersSettingsCseKeypairsCreateCall) Do(opts ...googleapi.CallOption) (* } return ret, nil // { - // "description": "Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", // "httpMethod": "POST", // "id": "gmail.users.settings.cse.keypairs.create", @@ -10080,8 +10070,7 @@ type UsersSettingsCseKeypairsDisableCall struct { // CSE message texts or sign outgoing CSE mail. To regain access, use // the EnableCseKeyPair to turn on the key pair. After 30 days, you can // permanently delete the key pair by using the ObliterateCseKeyPair -// method. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// method. // // - keyPairId: The identifier of the key pair to turn off. // - userId: The requester's primary email address. To indicate the @@ -10186,7 +10175,7 @@ func (c *UsersSettingsCseKeypairsDisableCall) Do(opts ...googleapi.CallOption) ( } return ret, nil // { - // "description": "Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable", // "httpMethod": "POST", // "id": "gmail.users.settings.cse.keypairs.disable", @@ -10238,8 +10227,7 @@ type UsersSettingsCseKeypairsEnableCall struct { // Enable: Turns on a client-side encryption key pair that was turned // off. The key pair becomes active again for any associated client-side -// encryption identities. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// encryption identities. // // - keyPairId: The identifier of the key pair to turn on. // - userId: The requester's primary email address. To indicate the @@ -10344,7 +10332,7 @@ func (c *UsersSettingsCseKeypairsEnableCall) Do(opts ...googleapi.CallOption) (* } return ret, nil // { - // "description": "Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable", // "httpMethod": "POST", // "id": "gmail.users.settings.cse.keypairs.enable", @@ -10394,8 +10382,7 @@ type UsersSettingsCseKeypairsGetCall struct { header_ http.Header } -// Get: Retrieves an existing client-side encryption key pair. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// Get: Retrieves an existing client-side encryption key pair. // // - keyPairId: The identifier of the key pair to retrieve. // - userId: The requester's primary email address. To indicate the @@ -10507,7 +10494,7 @@ func (c *UsersSettingsCseKeypairsGetCall) Do(opts ...googleapi.CallOption) (*Cse } return ret, nil // { - // "description": "Retrieves an existing client-side encryption key pair. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Retrieves an existing client-side encryption key pair.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}", // "httpMethod": "GET", // "id": "gmail.users.settings.cse.keypairs.get", @@ -10557,8 +10544,7 @@ type UsersSettingsCseKeypairsListCall struct { } // List: Lists client-side encryption key pairs for an authenticated -// user. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// user. // // - userId: The requester's primary email address. To indicate the // authenticated user, you can use the special value `me`. @@ -10683,7 +10669,7 @@ func (c *UsersSettingsCseKeypairsListCall) Do(opts ...googleapi.CallOption) (*Li } return ret, nil // { - // "description": "Lists client-side encryption key pairs for an authenticated user. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Lists client-side encryption key pairs for an authenticated user.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", // "httpMethod": "GET", // "id": "gmail.users.settings.cse.keypairs.list", @@ -10765,8 +10751,7 @@ type UsersSettingsCseKeypairsObliterateCall struct { // DisableCseKeyPair method. Gmail can't restore or decrypt any messages // that were encrypted by an obliterated key. Authenticated users and // Google Workspace administrators lose access to reading the encrypted -// messages. Beta -// (https://workspace.google.com/terms/service-terms/index.html). +// messages. // // - keyPairId: The identifier of the key pair to obliterate. // - userId: The requester's primary email address. To indicate the @@ -10846,7 +10831,7 @@ func (c *UsersSettingsCseKeypairsObliterateCall) Do(opts ...googleapi.CallOption } return nil // { - // "description": "Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages. [Beta](https://workspace.google.com/terms/service-terms/index.html).", + // "description": "Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages.", // "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate", // "httpMethod": "POST", // "id": "gmail.users.settings.cse.keypairs.obliterate", diff --git a/homegraph/v1/homegraph-api.json b/homegraph/v1/homegraph-api.json index 28c8f17c1b6..2081de7c5eb 100644 --- a/homegraph/v1/homegraph-api.json +++ b/homegraph/v1/homegraph-api.json @@ -216,7 +216,7 @@ } } }, - "revision": "20230106", + "revision": "20230113", "rootUrl": "https://homegraph.googleapis.com/", "schemas": { "AgentDeviceId": { @@ -246,7 +246,7 @@ "type": "object" }, "Device": { - "description": "Third-party device definition. Next ID = 14", + "description": "Third-party device definition.", "id": "Device", "properties": { "attributes": { diff --git a/homegraph/v1/homegraph-gen.go b/homegraph/v1/homegraph-gen.go index 420c6b187f3..976b127a737 100644 --- a/homegraph/v1/homegraph-gen.go +++ b/homegraph/v1/homegraph-gen.go @@ -216,7 +216,7 @@ func (s *AgentOtherDeviceId) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Device: Third-party device definition. Next ID = 14 +// Device: Third-party device definition. type Device struct { // Attributes: Attributes for the traits supported by the device. Attributes googleapi.RawMessage `json:"attributes,omitempty"` diff --git a/identitytoolkit/v1/identitytoolkit-api.json b/identitytoolkit/v1/identitytoolkit-api.json index 483522d3d65..78828aba188 100644 --- a/identitytoolkit/v1/identitytoolkit-api.json +++ b/identitytoolkit/v1/identitytoolkit-api.json @@ -1237,7 +1237,7 @@ } } }, - "revision": "20221112", + "revision": "20230113", "rootUrl": "https://identitytoolkit.googleapis.com/", "schemas": { "GoogleCloudIdentitytoolkitV1Argon2Parameters": { @@ -1924,6 +1924,10 @@ "kind": { "type": "string" }, + "producerProjectNumber": { + "description": "The producer project number used to generate PIA tokens", + "type": "string" + }, "recaptchaSiteKey": { "description": "The reCAPTCHA v2 site key used to invoke the reCAPTCHA service. Always present.", "type": "string" diff --git a/identitytoolkit/v1/identitytoolkit-gen.go b/identitytoolkit/v1/identitytoolkit-gen.go index f61c0278c57..9d4422e306b 100644 --- a/identitytoolkit/v1/identitytoolkit-gen.go +++ b/identitytoolkit/v1/identitytoolkit-gen.go @@ -1303,6 +1303,10 @@ func (s *GoogleCloudIdentitytoolkitV1GetProjectConfigResponse) MarshalJSON() ([] type GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse struct { Kind string `json:"kind,omitempty"` + // ProducerProjectNumber: The producer project number used to generate + // PIA tokens + ProducerProjectNumber string `json:"producerProjectNumber,omitempty"` + // RecaptchaSiteKey: The reCAPTCHA v2 site key used to invoke the // reCAPTCHA service. Always present. RecaptchaSiteKey string `json:"recaptchaSiteKey,omitempty"` diff --git a/metastore/v1beta/metastore-api.json b/metastore/v1beta/metastore-api.json index 2b05c02923f..ecd5e51bd8f 100644 --- a/metastore/v1beta/metastore-api.json +++ b/metastore/v1beta/metastore-api.json @@ -1551,7 +1551,7 @@ } } }, - "revision": "20230106", + "revision": "20230111", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -1665,7 +1665,7 @@ "type": "string" }, "name": { - "description": "The relative resource name of the metastore that is being federated. The formats of the relative resource names for the currently supported metastores are listed below: Dataplex projects/{project_id}/locations/{location}/lakes/{lake_id} BigQuery projects/{project_id} Dataproc Metastore projects/{project_id}/locations/{location}/services/{service_id}", + "description": "The relative resource name of the metastore that is being federated. The formats of the relative resource names for the currently supported metastores are listed below: BigQuery projects/{project_id} Dataproc Metastore projects/{project_id}/locations/{location}/services/{service_id}", "type": "string" } }, diff --git a/metastore/v1beta/metastore-gen.go b/metastore/v1beta/metastore-gen.go index c98b45239d1..dc2ef54bc02 100644 --- a/metastore/v1beta/metastore-gen.go +++ b/metastore/v1beta/metastore-gen.go @@ -435,8 +435,7 @@ type BackendMetastore struct { // Name: The relative resource name of the metastore that is being // federated. The formats of the relative resource names for the - // currently supported metastores are listed below: Dataplex - // projects/{project_id}/locations/{location}/lakes/{lake_id} BigQuery + // currently supported metastores are listed below: BigQuery // projects/{project_id} Dataproc Metastore // projects/{project_id}/locations/{location}/services/{service_id} Name string `json:"name,omitempty"` diff --git a/monitoring/v3/monitoring-api.json b/monitoring/v3/monitoring-api.json index 0d09fc55656..eacec3dd04a 100644 --- a/monitoring/v3/monitoring-api.json +++ b/monitoring/v3/monitoring-api.json @@ -2714,7 +2714,7 @@ } } }, - "revision": "20221205", + "revision": "20230115", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -3334,7 +3334,7 @@ "id": "Criteria", "properties": { "policies": { - "description": "The specific AlertPolicy names for the alert that should be snoozed. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID] There is a limit of 10 policies per snooze. This limit is checked during snooze creation.", + "description": "The specific AlertPolicy names for the alert that should be snoozed. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID] There is a limit of 100 policies per snooze. This limit is checked during snooze creation.", "items": { "type": "string" }, diff --git a/monitoring/v3/monitoring-gen.go b/monitoring/v3/monitoring-gen.go index 54e23437ae0..24a08abe5fc 100644 --- a/monitoring/v3/monitoring-gen.go +++ b/monitoring/v3/monitoring-gen.go @@ -1621,7 +1621,7 @@ type Criteria struct { // Policies: The specific AlertPolicy names for the alert that should be // snoozed. The format is: // projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID] There is a - // limit of 10 policies per snooze. This limit is checked during snooze + // limit of 100 policies per snooze. This limit is checked during snooze // creation. Policies []string `json:"policies,omitempty"` diff --git a/pubsub/v1/pubsub-api.json b/pubsub/v1/pubsub-api.json index 3aeb62ea63a..ac61b81131c 100644 --- a/pubsub/v1/pubsub-api.json +++ b/pubsub/v1/pubsub-api.json @@ -111,6 +111,35 @@ "resources": { "schemas": { "methods": { + "commit": { + "description": "Commits a new schema revision to an existing schema.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:commit", + "httpMethod": "POST", + "id": "pubsub.projects.schemas.commit", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the schema we are revising. Format is `projects/{project}/schemas/{schema}`.", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:commit", + "request": { + "$ref": "CommitSchemaRequest" + }, + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, "create": { "description": "Creates a schema.", "flatPath": "v1/projects/{projectsId}/schemas", @@ -171,6 +200,37 @@ "https://www.googleapis.com/auth/pubsub" ] }, + "deleteRevision": { + "description": "Deletes a specific schema revision.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:deleteRevision", + "httpMethod": "DELETE", + "id": "pubsub.projects.schemas.deleteRevision", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the schema revision to be deleted, with a revision ID explicitly included. Example: projects/123/schemas/my-schema@c7cfa2a8", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + }, + "revisionId": { + "description": "Required. The revision ID to roll back to. It must be a revision of the same schema. Example: c7cfa2a8", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:deleteRevision", + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, "get": { "description": "Gets a schema.", "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}", @@ -296,6 +356,87 @@ "https://www.googleapis.com/auth/pubsub" ] }, + "listRevisions": { + "description": "Lists all schema revisions for the named schema.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:listRevisions", + "httpMethod": "GET", + "id": "pubsub.projects.schemas.listRevisions", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the schema to list revisions for.", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of revisions to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token, received from a previous ListSchemaRevisions call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "view": { + "description": "The set of Schema fields to return in the response. If not set, returns Schemas with `name` and `type`, but not `definition`. Set to `FULL` to retrieve all fields.", + "enum": [ + "SCHEMA_VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "The default / unset value. The API will default to the BASIC view.", + "Include the name and type of the schema, but not the definition.", + "Include all Schema object fields." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:listRevisions", + "response": { + "$ref": "ListSchemaRevisionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "rollback": { + "description": "Creates a new schema revision that is a copy of the provided revision_id.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:rollback", + "httpMethod": "POST", + "id": "pubsub.projects.schemas.rollback", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The schema being rolled back with revision id.", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rollback", + "request": { + "$ref": "RollbackSchemaRequest" + }, + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:setIamPolicy", @@ -1424,7 +1565,7 @@ } } }, - "revision": "20221226", + "revision": "20230112", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { @@ -1505,6 +1646,17 @@ }, "type": "object" }, + "CommitSchemaRequest": { + "description": "Request for CommitSchema method.", + "id": "CommitSchemaRequest", + "properties": { + "schema": { + "$ref": "Schema", + "description": "Required. The schema revision to commit." + } + }, + "type": "object" + }, "CreateSnapshotRequest": { "description": "Request for the `CreateSnapshot` method.", "id": "CreateSnapshotRequest", @@ -1586,6 +1738,24 @@ }, "type": "object" }, + "ListSchemaRevisionsResponse": { + "description": "Response for the `ListSchemaRevisions` method.", + "id": "ListSchemaRevisionsResponse", + "properties": { + "nextPageToken": { + "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + }, + "schemas": { + "description": "The revisions of the schema.", + "items": { + "$ref": "Schema" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSchemasResponse": { "description": "Response for the `ListSchemas` method.", "id": "ListSchemasResponse", @@ -1925,6 +2095,17 @@ }, "type": "object" }, + "RollbackSchemaRequest": { + "description": "Request for the `RollbackSchema` method.", + "id": "RollbackSchemaRequest", + "properties": { + "revisionId": { + "description": "Required. The revision ID to roll back to. It must be a revision of the same schema. Example: c7cfa2a8", + "type": "string" + } + }, + "type": "object" + }, "Schema": { "description": "A schema resource.", "id": "Schema", diff --git a/pubsub/v1/pubsub-gen.go b/pubsub/v1/pubsub-gen.go index 50e5efa151b..260490e0f49 100644 --- a/pubsub/v1/pubsub-gen.go +++ b/pubsub/v1/pubsub-gen.go @@ -405,6 +405,34 @@ func (s *Binding) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// CommitSchemaRequest: Request for CommitSchema method. +type CommitSchemaRequest struct { + // Schema: Required. The schema revision to commit. + Schema *Schema `json:"schema,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Schema") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Schema") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CommitSchemaRequest) MarshalJSON() ([]byte, error) { + type NoMethod CommitSchemaRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // CreateSnapshotRequest: Request for the `CreateSnapshot` method. type CreateSnapshotRequest struct { // Labels: See Creating and managing labels @@ -607,6 +635,43 @@ func (s *Expr) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ListSchemaRevisionsResponse: Response for the `ListSchemaRevisions` +// method. +type ListSchemaRevisionsResponse struct { + // NextPageToken: A token that can be sent as `page_token` to retrieve + // the next page. If this field is empty, there are no subsequent pages. + NextPageToken string `json:"nextPageToken,omitempty"` + + // Schemas: The revisions of the schema. + Schemas []*Schema `json:"schemas,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NextPageToken") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListSchemaRevisionsResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListSchemaRevisionsResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ListSchemasResponse: Response for the `ListSchemas` method. type ListSchemasResponse struct { // NextPageToken: If not empty, indicates that there may be more schemas @@ -1433,6 +1498,35 @@ func (s *RetryPolicy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RollbackSchemaRequest: Request for the `RollbackSchema` method. +type RollbackSchemaRequest struct { + // RevisionId: Required. The revision ID to roll back to. It must be a + // revision of the same schema. Example: c7cfa2a8 + RevisionId string `json:"revisionId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "RevisionId") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "RevisionId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RollbackSchemaRequest) MarshalJSON() ([]byte, error) { + type NoMethod RollbackSchemaRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Schema: A schema resource. type Schema struct { // Definition: The definition of the schema. This should contain a @@ -2173,6 +2267,150 @@ type ValidateSchemaResponse struct { googleapi.ServerResponse `json:"-"` } +// method id "pubsub.projects.schemas.commit": + +type ProjectsSchemasCommitCall struct { + s *Service + name string + commitschemarequest *CommitSchemaRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Commit: Commits a new schema revision to an existing schema. +// +// - name: The name of the schema we are revising. Format is +// `projects/{project}/schemas/{schema}`. +func (r *ProjectsSchemasService) Commit(name string, commitschemarequest *CommitSchemaRequest) *ProjectsSchemasCommitCall { + c := &ProjectsSchemasCommitCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.commitschemarequest = commitschemarequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsSchemasCommitCall) Fields(s ...googleapi.Field) *ProjectsSchemasCommitCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsSchemasCommitCall) Context(ctx context.Context) *ProjectsSchemasCommitCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsSchemasCommitCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsSchemasCommitCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitschemarequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:commit") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "pubsub.projects.schemas.commit" call. +// Exactly one of *Schema or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Schema.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsSchemasCommitCall) Do(opts ...googleapi.CallOption) (*Schema, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Schema{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Commits a new schema revision to an existing schema.", + // "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:commit", + // "httpMethod": "POST", + // "id": "pubsub.projects.schemas.commit", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the schema we are revising. Format is `projects/{project}/schemas/{schema}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/schemas/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}:commit", + // "request": { + // "$ref": "CommitSchemaRequest" + // }, + // "response": { + // "$ref": "Schema" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/pubsub" + // ] + // } + +} + // method id "pubsub.projects.schemas.create": type ProjectsSchemasCreateCall struct { @@ -2466,98 +2704,73 @@ func (c *ProjectsSchemasDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, er } -// method id "pubsub.projects.schemas.get": +// method id "pubsub.projects.schemas.deleteRevision": -type ProjectsSchemasGetCall struct { - s *Service - name string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ProjectsSchemasDeleteRevisionCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Gets a schema. +// DeleteRevision: Deletes a specific schema revision. // -// - name: The name of the schema to get. Format is -// `projects/{project}/schemas/{schema}`. -func (r *ProjectsSchemasService) Get(name string) *ProjectsSchemasGetCall { - c := &ProjectsSchemasGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - name: The name of the schema revision to be deleted, with a +// revision ID explicitly included. Example: +// projects/123/schemas/my-schema@c7cfa2a8. +func (r *ProjectsSchemasService) DeleteRevision(name string) *ProjectsSchemasDeleteRevisionCall { + c := &ProjectsSchemasDeleteRevisionCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } -// View sets the optional parameter "view": The set of fields to return -// in the response. If not set, returns a Schema with all fields filled -// out. Set to `BASIC` to omit the `definition`. -// -// Possible values: -// -// "SCHEMA_VIEW_UNSPECIFIED" - The default / unset value. The API will -// -// default to the BASIC view. -// -// "BASIC" - Include the name and type of the schema, but not the -// -// definition. -// -// "FULL" - Include all Schema object fields. -func (c *ProjectsSchemasGetCall) View(view string) *ProjectsSchemasGetCall { - c.urlParams_.Set("view", view) +// RevisionId sets the optional parameter "revisionId": Required. The +// revision ID to roll back to. It must be a revision of the same +// schema. Example: c7cfa2a8 +func (c *ProjectsSchemasDeleteRevisionCall) RevisionId(revisionId string) *ProjectsSchemasDeleteRevisionCall { + c.urlParams_.Set("revisionId", revisionId) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *ProjectsSchemasGetCall) Fields(s ...googleapi.Field) *ProjectsSchemasGetCall { +func (c *ProjectsSchemasDeleteRevisionCall) Fields(s ...googleapi.Field) *ProjectsSchemasDeleteRevisionCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets the optional parameter which makes the operation -// fail if the object's ETag matches the given value. This is useful for -// getting updates only after the object has changed since the last -// request. Use googleapi.IsNotModified to check whether the response -// error from Do is the result of In-None-Match. -func (c *ProjectsSchemasGetCall) IfNoneMatch(entityTag string) *ProjectsSchemasGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *ProjectsSchemasGetCall) Context(ctx context.Context) *ProjectsSchemasGetCall { +func (c *ProjectsSchemasDeleteRevisionCall) Context(ctx context.Context) *ProjectsSchemasDeleteRevisionCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *ProjectsSchemasGetCall) Header() http.Header { +func (c *ProjectsSchemasDeleteRevisionCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsSchemasGetCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsSchemasDeleteRevisionCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:deleteRevision") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, body) if err != nil { return nil, err } @@ -2568,14 +2781,14 @@ func (c *ProjectsSchemasGetCall) doRequest(alt string) (*http.Response, error) { return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "pubsub.projects.schemas.get" call. +// Do executes the "pubsub.projects.schemas.deleteRevision" call. // Exactly one of *Schema or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Schema.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. -func (c *ProjectsSchemasGetCall) Do(opts ...googleapi.CallOption) (*Schema, error) { +func (c *ProjectsSchemasDeleteRevisionCall) Do(opts ...googleapi.CallOption) (*Schema, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2606,10 +2819,183 @@ func (c *ProjectsSchemasGetCall) Do(opts ...googleapi.CallOption) (*Schema, erro } return ret, nil // { - // "description": "Gets a schema.", - // "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}", - // "httpMethod": "GET", - // "id": "pubsub.projects.schemas.get", + // "description": "Deletes a specific schema revision.", + // "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:deleteRevision", + // "httpMethod": "DELETE", + // "id": "pubsub.projects.schemas.deleteRevision", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the schema revision to be deleted, with a revision ID explicitly included. Example: projects/123/schemas/my-schema@c7cfa2a8", + // "location": "path", + // "pattern": "^projects/[^/]+/schemas/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "revisionId": { + // "description": "Required. The revision ID to roll back to. It must be a revision of the same schema. Example: c7cfa2a8", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/{+name}:deleteRevision", + // "response": { + // "$ref": "Schema" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/pubsub" + // ] + // } + +} + +// method id "pubsub.projects.schemas.get": + +type ProjectsSchemasGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a schema. +// +// - name: The name of the schema to get. Format is +// `projects/{project}/schemas/{schema}`. +func (r *ProjectsSchemasService) Get(name string) *ProjectsSchemasGetCall { + c := &ProjectsSchemasGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// View sets the optional parameter "view": The set of fields to return +// in the response. If not set, returns a Schema with all fields filled +// out. Set to `BASIC` to omit the `definition`. +// +// Possible values: +// +// "SCHEMA_VIEW_UNSPECIFIED" - The default / unset value. The API will +// +// default to the BASIC view. +// +// "BASIC" - Include the name and type of the schema, but not the +// +// definition. +// +// "FULL" - Include all Schema object fields. +func (c *ProjectsSchemasGetCall) View(view string) *ProjectsSchemasGetCall { + c.urlParams_.Set("view", view) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsSchemasGetCall) Fields(s ...googleapi.Field) *ProjectsSchemasGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsSchemasGetCall) IfNoneMatch(entityTag string) *ProjectsSchemasGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsSchemasGetCall) Context(ctx context.Context) *ProjectsSchemasGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsSchemasGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsSchemasGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "pubsub.projects.schemas.get" call. +// Exactly one of *Schema or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Schema.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsSchemasGetCall) Do(opts ...googleapi.CallOption) (*Schema, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Schema{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a schema.", + // "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}", + // "httpMethod": "GET", + // "id": "pubsub.projects.schemas.get", // "parameterOrder": [ // "name" // ], @@ -3056,6 +3442,379 @@ func (c *ProjectsSchemasListCall) Pages(ctx context.Context, f func(*ListSchemas } } +// method id "pubsub.projects.schemas.listRevisions": + +type ProjectsSchemasListRevisionsCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListRevisions: Lists all schema revisions for the named schema. +// +// - name: The name of the schema to list revisions for. +func (r *ProjectsSchemasService) ListRevisions(name string) *ProjectsSchemasListRevisionsCall { + c := &ProjectsSchemasListRevisionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// PageSize sets the optional parameter "pageSize": The maximum number +// of revisions to return per page. +func (c *ProjectsSchemasListRevisionsCall) PageSize(pageSize int64) *ProjectsSchemasListRevisionsCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": The page token, +// received from a previous ListSchemaRevisions call. Provide this to +// retrieve the subsequent page. +func (c *ProjectsSchemasListRevisionsCall) PageToken(pageToken string) *ProjectsSchemasListRevisionsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// View sets the optional parameter "view": The set of Schema fields to +// return in the response. If not set, returns Schemas with `name` and +// `type`, but not `definition`. Set to `FULL` to retrieve all fields. +// +// Possible values: +// +// "SCHEMA_VIEW_UNSPECIFIED" - The default / unset value. The API will +// +// default to the BASIC view. +// +// "BASIC" - Include the name and type of the schema, but not the +// +// definition. +// +// "FULL" - Include all Schema object fields. +func (c *ProjectsSchemasListRevisionsCall) View(view string) *ProjectsSchemasListRevisionsCall { + c.urlParams_.Set("view", view) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsSchemasListRevisionsCall) Fields(s ...googleapi.Field) *ProjectsSchemasListRevisionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsSchemasListRevisionsCall) IfNoneMatch(entityTag string) *ProjectsSchemasListRevisionsCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsSchemasListRevisionsCall) Context(ctx context.Context) *ProjectsSchemasListRevisionsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsSchemasListRevisionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsSchemasListRevisionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:listRevisions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "pubsub.projects.schemas.listRevisions" call. +// Exactly one of *ListSchemaRevisionsResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *ListSchemaRevisionsResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsSchemasListRevisionsCall) Do(opts ...googleapi.CallOption) (*ListSchemaRevisionsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ListSchemaRevisionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists all schema revisions for the named schema.", + // "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:listRevisions", + // "httpMethod": "GET", + // "id": "pubsub.projects.schemas.listRevisions", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the schema to list revisions for.", + // "location": "path", + // "pattern": "^projects/[^/]+/schemas/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "The maximum number of revisions to return per page.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "The page token, received from a previous ListSchemaRevisions call. Provide this to retrieve the subsequent page.", + // "location": "query", + // "type": "string" + // }, + // "view": { + // "description": "The set of Schema fields to return in the response. If not set, returns Schemas with `name` and `type`, but not `definition`. Set to `FULL` to retrieve all fields.", + // "enum": [ + // "SCHEMA_VIEW_UNSPECIFIED", + // "BASIC", + // "FULL" + // ], + // "enumDescriptions": [ + // "The default / unset value. The API will default to the BASIC view.", + // "Include the name and type of the schema, but not the definition.", + // "Include all Schema object fields." + // ], + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/{+name}:listRevisions", + // "response": { + // "$ref": "ListSchemaRevisionsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/pubsub" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsSchemasListRevisionsCall) Pages(ctx context.Context, f func(*ListSchemaRevisionsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "pubsub.projects.schemas.rollback": + +type ProjectsSchemasRollbackCall struct { + s *Service + name string + rollbackschemarequest *RollbackSchemaRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Rollback: Creates a new schema revision that is a copy of the +// provided revision_id. +// +// - name: The schema being rolled back with revision id. +func (r *ProjectsSchemasService) Rollback(name string, rollbackschemarequest *RollbackSchemaRequest) *ProjectsSchemasRollbackCall { + c := &ProjectsSchemasRollbackCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.rollbackschemarequest = rollbackschemarequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsSchemasRollbackCall) Fields(s ...googleapi.Field) *ProjectsSchemasRollbackCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsSchemasRollbackCall) Context(ctx context.Context) *ProjectsSchemasRollbackCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsSchemasRollbackCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsSchemasRollbackCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollbackschemarequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:rollback") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "pubsub.projects.schemas.rollback" call. +// Exactly one of *Schema or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Schema.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsSchemasRollbackCall) Do(opts ...googleapi.CallOption) (*Schema, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Schema{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a new schema revision that is a copy of the provided revision_id.", + // "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:rollback", + // "httpMethod": "POST", + // "id": "pubsub.projects.schemas.rollback", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The schema being rolled back with revision id.", + // "location": "path", + // "pattern": "^projects/[^/]+/schemas/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}:rollback", + // "request": { + // "$ref": "RollbackSchemaRequest" + // }, + // "response": { + // "$ref": "Schema" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/pubsub" + // ] + // } + +} + // method id "pubsub.projects.schemas.setIamPolicy": type ProjectsSchemasSetIamPolicyCall struct { diff --git a/run/v2/run-api.json b/run/v2/run-api.json index bee67e21f72..9f94a578c07 100644 --- a/run/v2/run-api.json +++ b/run/v2/run-api.json @@ -676,6 +676,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "wait": { + "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait", + "httpMethod": "POST", + "id": "run.projects.locations.operations.wait", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to wait on.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:wait", + "request": { + "$ref": "GoogleLongrunningWaitOperationRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -1059,7 +1087,7 @@ } } }, - "revision": "20230102", + "revision": "20230113", "rootUrl": "https://run.googleapis.com/", "schemas": { "GoogleCloudRunV2BinaryAuthorization": { @@ -3072,6 +3100,18 @@ }, "type": "object" }, + "GoogleLongrunningWaitOperationRequest": { + "description": "The request message for Operations.WaitOperation.", + "id": "GoogleLongrunningWaitOperationRequest", + "properties": { + "timeout": { + "description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleProtobufEmpty": { "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }", "id": "GoogleProtobufEmpty", diff --git a/run/v2/run-gen.go b/run/v2/run-gen.go index 4a50bf4abde..5fee604abf3 100644 --- a/run/v2/run-gen.go +++ b/run/v2/run-gen.go @@ -3244,6 +3244,38 @@ func (s *GoogleLongrunningOperation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleLongrunningWaitOperationRequest: The request message for +// Operations.WaitOperation. +type GoogleLongrunningWaitOperationRequest struct { + // Timeout: The maximum duration to wait before timing out. If left + // blank, the wait will be at most the time permitted by the underlying + // HTTP/RPC protocol. If RPC context deadline is also specified, the + // shorter one will be used. + Timeout string `json:"timeout,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Timeout") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Timeout") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleLongrunningWaitOperationRequest) MarshalJSON() ([]byte, error) { + type NoMethod GoogleLongrunningWaitOperationRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleProtobufEmpty: A generic empty message that you can re-use to // avoid defining duplicated empty messages in your APIs. A typical // example is to use it as the request or the response type of an API @@ -6206,6 +6238,157 @@ func (c *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func( } } +// method id "run.projects.locations.operations.wait": + +type ProjectsLocationsOperationsWaitCall struct { + s *Service + name string + googlelongrunningwaitoperationrequest *GoogleLongrunningWaitOperationRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Wait: Waits until the specified long-running operation is done or +// reaches at most a specified timeout, returning the latest state. If +// the operation is already done, the latest state is immediately +// returned. If the timeout specified is greater than the default +// HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does +// not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. +// Note that this method is on a best-effort basis. It may return the +// latest state before the specified timeout (including immediately), +// meaning even an immediate response is no guarantee that the operation +// is done. +// +// - name: The name of the operation resource to wait on. +func (r *ProjectsLocationsOperationsService) Wait(name string, googlelongrunningwaitoperationrequest *GoogleLongrunningWaitOperationRequest) *ProjectsLocationsOperationsWaitCall { + c := &ProjectsLocationsOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.googlelongrunningwaitoperationrequest = googlelongrunningwaitoperationrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsOperationsWaitCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsWaitCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsOperationsWaitCall) Context(ctx context.Context) *ProjectsLocationsOperationsWaitCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsOperationsWaitCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsOperationsWaitCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlelongrunningwaitoperationrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}:wait") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "run.projects.locations.operations.wait" call. +// Exactly one of *GoogleLongrunningOperation or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GoogleLongrunningOperation.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsOperationsWaitCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleLongrunningOperation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.", + // "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait", + // "httpMethod": "POST", + // "id": "run.projects.locations.operations.wait", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The name of the operation resource to wait on.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v2/{+name}:wait", + // "request": { + // "$ref": "GoogleLongrunningWaitOperationRequest" + // }, + // "response": { + // "$ref": "GoogleLongrunningOperation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + // method id "run.projects.locations.services.create": type ProjectsLocationsServicesCreateCall struct { diff --git a/searchads360/v0/searchads360-api.json b/searchads360/v0/searchads360-api.json new file mode 100644 index 00000000000..938bc2f2542 --- /dev/null +++ b/searchads360/v0/searchads360-api.json @@ -0,0 +1,4445 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/doubleclicksearch": { + "description": "View and manage your advertising data in DoubleClick Search" + } + } + } + }, + "basePath": "", + "baseUrl": "https://searchads360.googleapis.com/", + "batchPath": "batch", + "canonicalName": "SA360", + "description": "The Search Ads 360 API allows developers to automate downloading reports from Search Ads 360.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/search-ads/reporting", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "searchads360:v0", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://searchads360.mtls.googleapis.com/", + "name": "searchads360", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "enum": [ + "json", + "media", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ], + "location": "query", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", + "location": "query", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "customers": { + "resources": { + "customColumns": { + "methods": { + "get": { + "description": "Returns the requested custom column in full detail.", + "flatPath": "v0/customers/{customersId}/customColumns/{customColumnsId}", + "httpMethod": "GET", + "id": "searchads360.customers.customColumns.get", + "parameterOrder": [ + "resourceName" + ], + "parameters": { + "resourceName": { + "description": "Required. The resource name of the custom column to fetch.", + "location": "path", + "pattern": "^customers/[^/]+/customColumns/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v0/{+resourceName}", + "response": { + "$ref": "GoogleAdsSearchads360V0Resources__CustomColumn" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "list": { + "description": "Returns all the custom columns associated with the customer in full detail.", + "flatPath": "v0/customers/{customersId}/customColumns", + "httpMethod": "GET", + "id": "searchads360.customers.customColumns.list", + "parameterOrder": [ + "customerId" + ], + "parameters": { + "customerId": { + "description": "Required. The ID of the customer to apply the CustomColumn list operation to.", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v0/customers/{+customerId}/customColumns", + "response": { + "$ref": "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + } + } + }, + "searchAds360": { + "methods": { + "search": { + "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", + "flatPath": "v0/customers/{customersId}/searchAds360:search", + "httpMethod": "POST", + "id": "searchads360.customers.searchAds360.search", + "parameterOrder": [ + "customerId" + ], + "parameters": { + "customerId": { + "description": "Required. The ID of the customer being queried.", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v0/customers/{+customerId}/searchAds360:search", + "request": { + "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Request" + }, + "response": { + "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Response" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "searchStream": { + "description": "Returns all rows that match the search stream query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", + "flatPath": "v0/customers/{customersId}/searchAds360:searchStream", + "httpMethod": "POST", + "id": "searchads360.customers.searchAds360.searchStream", + "parameterOrder": [ + "customerId" + ], + "parameters": { + "customerId": { + "description": "Required. The ID of the customer being queried.", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v0/customers/{+customerId}/searchAds360:searchStream", + "request": { + "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest" + }, + "response": { + "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + } + } + } + } + }, + "searchAds360Fields": { + "methods": { + "get": { + "description": "Returns just the requested field. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()", + "flatPath": "v0/searchAds360Fields/{searchAds360FieldsId}", + "httpMethod": "GET", + "id": "searchads360.searchAds360Fields.get", + "parameterOrder": [ + "resourceName" + ], + "parameters": { + "resourceName": { + "description": "Required. The resource name of the field to get.", + "location": "path", + "pattern": "^searchAds360Fields/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v0/{+resourceName}", + "response": { + "$ref": "GoogleAdsSearchads360V0Resources__SearchAds360Field" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "search": { + "description": "Returns all fields that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", + "flatPath": "v0/searchAds360Fields:search", + "httpMethod": "POST", + "id": "searchads360.searchAds360Fields.search", + "parameterOrder": [], + "parameters": {}, + "path": "v0/searchAds360Fields:search", + "request": { + "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest" + }, + "response": { + "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + } + } + } + }, + "revision": "20221208", + "rootUrl": "https://searchads360.googleapis.com/", + "schemas": { + "GoogleAdsSearchads360V0Common__AgeRangeInfo": { + "description": "An age range criterion.", + "id": "GoogleAdsSearchads360V0Common__AgeRangeInfo", + "properties": { + "type": { + "description": "Type of the age range.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AGE_RANGE_18_24", + "AGE_RANGE_25_34", + "AGE_RANGE_35_44", + "AGE_RANGE_45_54", + "AGE_RANGE_55_64", + "AGE_RANGE_65_UP", + "AGE_RANGE_UNDETERMINED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Between 18 and 24 years old.", + "Between 25 and 34 years old.", + "Between 35 and 44 years old.", + "Between 45 and 54 years old.", + "Between 55 and 64 years old.", + "65 years old and beyond.", + "Undetermined age range." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__CustomParameter": { + "description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.", + "id": "GoogleAdsSearchads360V0Common__CustomParameter", + "properties": { + "key": { + "description": "The key matching the parameter tag name.", + "type": "string" + }, + "value": { + "description": "The value to be substituted.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__DeviceInfo": { + "description": "A device criterion.", + "id": "GoogleAdsSearchads360V0Common__DeviceInfo", + "properties": { + "type": { + "description": "Type of the device.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MOBILE", + "TABLET", + "DESKTOP", + "CONNECTED_TV", + "OTHER" + ], + "enumDescriptions": [ + "Not specified.", + "The value is unknown in this version.", + "Mobile devices with full browsers.", + "Tablets with full browsers.", + "Computers.", + "Smart TVs and game consoles.", + "Other device types." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__EnhancedCpc": { + "description": "An automated bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely. This bidding strategy is deprecated and cannot be created anymore. Use ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality.", + "id": "GoogleAdsSearchads360V0Common__EnhancedCpc", + "properties": {}, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__FrequencyCapEntry": { + "description": "A rule specifying the maximum number of times an ad (or some set of ads) can be shown to a user over a particular time period.", + "id": "GoogleAdsSearchads360V0Common__FrequencyCapEntry", + "properties": {}, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__GenderInfo": { + "description": "A gender criterion.", + "id": "GoogleAdsSearchads360V0Common__GenderInfo", + "properties": { + "type": { + "description": "Type of the gender.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MALE", + "FEMALE", + "UNDETERMINED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Male.", + "Female.", + "Undetermined gender." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__KeywordInfo": { + "description": "A keyword criterion.", + "id": "GoogleAdsSearchads360V0Common__KeywordInfo", + "properties": { + "matchType": { + "description": "The match type of the keyword.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EXACT", + "PHRASE", + "BROAD" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Exact match.", + "Phrase match.", + "Broad match." + ], + "type": "string" + }, + "text": { + "description": "The text of the keyword (at most 80 characters and 10 words).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__LanguageInfo": { + "description": "A language criterion.", + "id": "GoogleAdsSearchads360V0Common__LanguageInfo", + "properties": { + "languageConstant": { + "description": "The language constant resource name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__ListingGroupInfo": { + "description": "A listing group criterion.", + "id": "GoogleAdsSearchads360V0Common__ListingGroupInfo", + "properties": { + "type": { + "description": "Type of the listing group.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "SUBDIVISION", + "UNIT" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Subdivision of products along some listing dimension. These nodes are not used by serving to target listing entries, but is purely to define the structure of the tree.", + "Listing group unit that defines a bid." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__LocationGroupInfo": { + "description": "A radius around a list of locations specified through a feed.", + "id": "GoogleAdsSearchads360V0Common__LocationGroupInfo", + "properties": { + "feedItemSets": { + "description": "FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, then all items that appear in at least one set are targeted. This field cannot be used with geo_target_constants. This is optional and can only be set in CREATE operations.", + "items": { + "type": "string" + }, + "type": "array" + }, + "geoTargetConstants": { + "description": "Geo target constant(s) restricting the scope of the geographic area within the feed. Currently only one geo target constant is allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, + "radius": { + "description": "Distance in units specifying the radius around targeted locations. This is required and must be set in CREATE operations.", + "format": "int64", + "type": "string" + }, + "radiusUnits": { + "description": "Unit of the radius. Miles and meters are supported for geo target constants. Milli miles and meters are supported for feed item sets. This is required and must be set in CREATE operations.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "METERS", + "MILES", + "MILLI_MILES" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Meters", + "Miles", + "Milli Miles" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__LocationInfo": { + "description": "A location criterion.", + "id": "GoogleAdsSearchads360V0Common__LocationInfo", + "properties": { + "geoTargetConstant": { + "description": "The geo target constant resource name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__ManualCpa": { + "description": "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.", + "id": "GoogleAdsSearchads360V0Common__ManualCpa", + "properties": {}, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__ManualCpc": { + "description": "Manual click-based bidding where user pays per click.", + "id": "GoogleAdsSearchads360V0Common__ManualCpc", + "properties": { + "enhancedCpcEnabled": { + "description": "Whether bids are to be enhanced based on conversion optimizer data.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__ManualCpm": { + "description": "Manual impression-based bidding where user pays per thousand impressions.", + "id": "GoogleAdsSearchads360V0Common__ManualCpm", + "properties": {}, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__MaximizeConversionValue": { + "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.", + "id": "GoogleAdsSearchads360V0Common__MaximizeConversionValue", + "properties": { + "cpcBidCeilingMicros": { + "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", + "format": "int64", + "type": "string" + }, + "cpcBidFloorMicros": { + "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", + "format": "int64", + "type": "string" + }, + "targetRoas": { + "description": "The target return on ad spend (ROAS) option. If set, the bid strategy will maximize revenue while averaging the target return on ad spend. If the target ROAS is high, the bid strategy may not be able to spend the full budget. If the target ROAS is not set, the bid strategy will aim to achieve the highest possible ROAS for the budget.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__MaximizeConversions": { + "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.", + "id": "GoogleAdsSearchads360V0Common__MaximizeConversions", + "properties": { + "cpcBidCeilingMicros": { + "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", + "format": "int64", + "type": "string" + }, + "cpcBidFloorMicros": { + "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", + "format": "int64", + "type": "string" + }, + "targetCpaMicros": { + "description": "The target cost-per-action (CPA) option. This is the average amount that you would like to spend per conversion action specified in micro units of the bidding strategy's currency. If set, the bid strategy will get as many conversions as possible at or below the target cost-per-action. If the target CPA is not set, the bid strategy will aim to achieve the lowest possible CPA given the budget.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__Metrics": { + "description": "Metrics data.", + "id": "GoogleAdsSearchads360V0Common__Metrics", + "properties": { + "absoluteTopImpressionPercentage": { + "description": "The percent of your ad impressions that are shown as the very first ad above the organic search results.", + "format": "double", + "type": "number" + }, + "allConversions": { + "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric.", + "format": "double", + "type": "number" + }, + "allConversionsByConversionDate": { + "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", + "format": "double", + "type": "number" + }, + "allConversionsFromClickToCall": { + "description": "The number of times people clicked the \"Call\" button to call a store during or after clicking an ad. This number doesn't include whether or not calls were connected, or the duration of any calls. This metric applies to feed items only.", + "format": "double", + "type": "number" + }, + "allConversionsFromDirections": { + "description": "The number of times people clicked a \"Get directions\" button to navigate to a store after clicking an ad. This metric applies to feed items only.", + "format": "double", + "type": "number" + }, + "allConversionsFromInteractionsRate": { + "description": "All conversions from interactions (as oppose to view through conversions) divided by the number of ad interactions.", + "format": "double", + "type": "number" + }, + "allConversionsFromInteractionsValuePerInteraction": { + "description": "The value of all conversions from interactions divided by the total number of interactions.", + "format": "double", + "type": "number" + }, + "allConversionsFromMenu": { + "description": "The number of times people clicked a link to view a store's menu after clicking an ad. This metric applies to feed items only.", + "format": "double", + "type": "number" + }, + "allConversionsFromOrder": { + "description": "The number of times people placed an order at a store after clicking an ad. This metric applies to feed items only.", + "format": "double", + "type": "number" + }, + "allConversionsFromOtherEngagement": { + "description": "The number of other conversions (for example, posting a review or saving a location for a store) that occurred after people clicked an ad. This metric applies to feed items only.", + "format": "double", + "type": "number" + }, + "allConversionsFromStoreVisit": { + "description": "Estimated number of times people visited a store after clicking an ad. This metric applies to feed items only.", + "format": "double", + "type": "number" + }, + "allConversionsFromStoreWebsite": { + "description": "The number of times that people were taken to a store's URL after clicking an ad. This metric applies to feed items only.", + "format": "double", + "type": "number" + }, + "allConversionsValue": { + "description": "The value of all conversions.", + "format": "double", + "type": "number" + }, + "allConversionsValueByConversionDate": { + "description": "The value of all conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", + "format": "double", + "type": "number" + }, + "allConversionsValuePerCost": { + "description": "The value of all conversions divided by the total cost of ad interactions (such as clicks for text ads or views for video ads).", + "format": "double", + "type": "number" + }, + "averageCost": { + "description": "The average amount you pay per interaction. This amount is the total cost of your ads divided by the total number of interactions.", + "format": "double", + "type": "number" + }, + "averageCpc": { + "description": "The total cost of all clicks divided by the total number of clicks received.", + "format": "double", + "type": "number" + }, + "averageCpm": { + "description": "Average cost-per-thousand impressions (CPM).", + "format": "double", + "type": "number" + }, + "clicks": { + "description": "The number of clicks.", + "format": "int64", + "type": "string" + }, + "clientAccountConversions": { + "description": "The number of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", + "format": "double", + "type": "number" + }, + "clientAccountConversionsValue": { + "description": "The value of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", + "format": "double", + "type": "number" + }, + "clientAccountViewThroughConversions": { + "description": "The total number of view-through conversions. These happen when a customer sees an image or rich media ad, then later completes a conversion on your site without interacting with (for example, clicking on) another ad.", + "format": "int64", + "type": "string" + }, + "contentBudgetLostImpressionShare": { + "description": "The estimated percent of times that your ad was eligible to show on the Display Network but didn't because your budget was too low. Note: Content budget lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "contentImpressionShare": { + "description": "The impressions you've received on the Display Network divided by the estimated number of impressions you were eligible to receive. Note: Content impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", + "format": "double", + "type": "number" + }, + "contentRankLostImpressionShare": { + "description": "The estimated percentage of impressions on the Display Network that your ads didn't receive due to poor Ad Rank. Note: Content rank lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "conversions": { + "description": "The number of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", + "format": "double", + "type": "number" + }, + "conversionsByConversionDate": { + "description": "The sum of conversions by conversion date for biddable conversion types. Can be fractional due to attribution modeling. When this column is selected with date, the values in date column means the conversion date.", + "format": "double", + "type": "number" + }, + "conversionsFromInteractionsRate": { + "description": "Average biddable conversions (from interaction) per conversion eligible interaction. Shows how often, on average, an ad interaction leads to a biddable conversion.", + "format": "double", + "type": "number" + }, + "conversionsFromInteractionsValuePerInteraction": { + "description": "The value of conversions from interactions divided by the number of ad interactions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", + "format": "double", + "type": "number" + }, + "conversionsValue": { + "description": "The sum of conversion values for the conversions included in the \"conversions\" field. This metric is useful only if you entered a value for your conversion actions.", + "format": "double", + "type": "number" + }, + "conversionsValueByConversionDate": { + "description": "The sum of biddable conversions value by conversion date. When this column is selected with date, the values in date column means the conversion date.", + "format": "double", + "type": "number" + }, + "conversionsValuePerCost": { + "description": "The value of biddable conversion divided by the total cost of conversion eligible interactions.", + "format": "double", + "type": "number" + }, + "costMicros": { + "description": "The sum of your cost-per-click (CPC) and cost-per-thousand impressions (CPM) costs during this period.", + "format": "int64", + "type": "string" + }, + "costPerAllConversions": { + "description": "The cost of ad interactions divided by all conversions.", + "format": "double", + "type": "number" + }, + "costPerConversion": { + "description": "Average conversion eligible cost per biddable conversion.", + "format": "double", + "type": "number" + }, + "costPerCurrentModelAttributedConversion": { + "description": "The cost of ad interactions divided by current model attributed conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", + "format": "double", + "type": "number" + }, + "crossDeviceConversions": { + "description": "Conversions from when a customer clicks on an ad on one device, then converts on a different device or browser. Cross-device conversions are already included in all_conversions.", + "format": "double", + "type": "number" + }, + "crossDeviceConversionsValue": { + "description": "The sum of the value of cross-device conversions.", + "format": "double", + "type": "number" + }, + "ctr": { + "description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions).", + "format": "double", + "type": "number" + }, + "historicalCreativeQualityScore": { + "description": "The creative historical quality score.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BELOW_AVERAGE", + "AVERAGE", + "ABOVE_AVERAGE" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Quality of the creative is below average.", + "Quality of the creative is average.", + "Quality of the creative is above average." + ], + "type": "string" + }, + "historicalLandingPageQualityScore": { + "description": "The quality of historical landing page experience.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BELOW_AVERAGE", + "AVERAGE", + "ABOVE_AVERAGE" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Quality of the creative is below average.", + "Quality of the creative is average.", + "Quality of the creative is above average." + ], + "type": "string" + }, + "historicalQualityScore": { + "description": "The historical quality score.", + "format": "int64", + "type": "string" + }, + "historicalSearchPredictedCtr": { + "description": "The historical search predicted click through rate (CTR).", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BELOW_AVERAGE", + "AVERAGE", + "ABOVE_AVERAGE" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Quality of the creative is below average.", + "Quality of the creative is average.", + "Quality of the creative is above average." + ], + "type": "string" + }, + "impressions": { + "description": "Count of how often your ad has appeared on a search results page or website on the Google Network.", + "format": "int64", + "type": "string" + }, + "interactionEventTypes": { + "description": "The types of payable and free interactions.", + "items": { + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CLICK", + "ENGAGEMENT", + "VIDEO_VIEW", + "NONE" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Click to site. In most cases, this interaction navigates to an external location, usually the advertiser's landing page. This is also the default InteractionEventType for click events.", + "The user's expressed intent to engage with the ad in-place.", + "User viewed a video ad.", + "The default InteractionEventType for ad conversion events. This is used when an ad conversion row does NOT indicate that the free interactions (for example, the ad conversions) should be 'promoted' and reported as part of the core metrics. These are simply other (ad) conversions." + ], + "type": "string" + }, + "type": "array" + }, + "interactionRate": { + "description": "How often people interact with your ad after it is shown to them. This is the number of interactions divided by the number of times your ad is shown.", + "format": "double", + "type": "number" + }, + "interactions": { + "description": "The number of interactions. An interaction is the main user action associated with an ad format-clicks for text and shopping ads, views for video ads, and so on.", + "format": "int64", + "type": "string" + }, + "invalidClickRate": { + "description": "The percentage of clicks filtered out of your total number of clicks (filtered + non-filtered clicks) during the reporting period.", + "format": "double", + "type": "number" + }, + "invalidClicks": { + "description": "Number of clicks Google considers illegitimate and doesn't charge you for.", + "format": "int64", + "type": "string" + }, + "mobileFriendlyClicksPercentage": { + "description": "The percentage of mobile clicks that go to a mobile-friendly page.", + "format": "double", + "type": "number" + }, + "searchAbsoluteTopImpressionShare": { + "description": "The percentage of the customer's Shopping or Search ad impressions that are shown in the most prominent Shopping position. See https://support.google.com/sa360/answer/9566729 for details. Any value below 0.1 is reported as 0.0999.", + "format": "double", + "type": "number" + }, + "searchBudgetLostAbsoluteTopImpressionShare": { + "description": "The number estimating how often your ad wasn't the very first ad above the organic search results due to a low budget. Note: Search budget lost absolute top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "searchBudgetLostImpressionShare": { + "description": "The estimated percent of times that your ad was eligible to show on the Search Network but didn't because your budget was too low. Note: Search budget lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "searchBudgetLostTopImpressionShare": { + "description": "The number estimating how often your ad didn't show anywhere above the organic search results due to a low budget. Note: Search budget lost top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "searchClickShare": { + "description": "The number of clicks you've received on the Search Network divided by the estimated number of clicks you were eligible to receive. Note: Search click share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", + "format": "double", + "type": "number" + }, + "searchExactMatchImpressionShare": { + "description": "The impressions you've received divided by the estimated number of impressions you were eligible to receive on the Search Network for search terms that matched your keywords exactly (or were close variants of your keyword), regardless of your keyword match types. Note: Search exact match impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", + "format": "double", + "type": "number" + }, + "searchImpressionShare": { + "description": "The impressions you've received on the Search Network divided by the estimated number of impressions you were eligible to receive. Note: Search impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", + "format": "double", + "type": "number" + }, + "searchRankLostAbsoluteTopImpressionShare": { + "description": "The number estimating how often your ad wasn't the very first ad above the organic search results due to poor Ad Rank. Note: Search rank lost absolute top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "searchRankLostImpressionShare": { + "description": "The estimated percentage of impressions on the Search Network that your ads didn't receive due to poor Ad Rank. Note: Search rank lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "searchRankLostTopImpressionShare": { + "description": "The number estimating how often your ad didn't show anywhere above the organic search results due to poor Ad Rank. Note: Search rank lost top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", + "format": "double", + "type": "number" + }, + "searchTopImpressionShare": { + "description": "The impressions you've received in the top location (anywhere above the organic search results) compared to the estimated number of impressions you were eligible to receive in the top location. Note: Search top impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", + "format": "double", + "type": "number" + }, + "topImpressionPercentage": { + "description": "The percent of your ad impressions that are shown anywhere above the organic search results.", + "format": "double", + "type": "number" + }, + "valuePerAllConversions": { + "description": "The value of all conversions divided by the number of all conversions.", + "format": "double", + "type": "number" + }, + "valuePerAllConversionsByConversionDate": { + "description": "The value of all conversions divided by the number of all conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", + "format": "double", + "type": "number" + }, + "valuePerConversion": { + "description": "The value of biddable conversion divided by the number of biddable conversions. Shows how much, on average, each of the biddable conversions is worth.", + "format": "double", + "type": "number" + }, + "valuePerConversionsByConversionDate": { + "description": "Biddable conversions value by conversion date divided by biddable conversions by conversion date. Shows how much, on average, each of the biddable conversions is worth (by conversion date). When this column is selected with date, the values in date column means the conversion date.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__PercentCpc": { + "description": "A bidding strategy where bids are a fraction of the advertised price for some good or service.", + "id": "GoogleAdsSearchads360V0Common__PercentCpc", + "properties": { + "cpcBidCeilingMicros": { + "description": "Maximum bid limit that can be set by the bid strategy. This is an optional field entered by the advertiser and specified in local micros. Note: A zero value is interpreted in the same way as having bid_ceiling undefined.", + "format": "int64", + "type": "string" + }, + "enhancedCpcEnabled": { + "description": "Adjusts the bid for each auction upward or downward, depending on the likelihood of a conversion. Individual bids may exceed cpc_bid_ceiling_micros, but the average bid amount for a campaign should not.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting": { + "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.", + "id": "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting", + "properties": { + "optIn": { + "description": "Whether the campaign is opted in to real-time bidding.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__Segments": { + "description": "Segment only fields.", + "id": "GoogleAdsSearchads360V0Common__Segments", + "properties": { + "conversionAction": { + "description": "Resource name of the conversion action.", + "type": "string" + }, + "conversionActionCategory": { + "description": "Conversion action category.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DEFAULT", + "PAGE_VIEW", + "PURCHASE", + "SIGNUP", + "LEAD", + "DOWNLOAD", + "ADD_TO_CART", + "BEGIN_CHECKOUT", + "SUBSCRIBE_PAID", + "PHONE_CALL_LEAD", + "IMPORTED_LEAD", + "SUBMIT_LEAD_FORM", + "BOOK_APPOINTMENT", + "REQUEST_QUOTE", + "GET_DIRECTIONS", + "OUTBOUND_CLICK", + "CONTACT", + "ENGAGEMENT", + "STORE_VISIT", + "STORE_SALE", + "QUALIFIED_LEAD", + "CONVERTED_LEAD" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Default category.", + "User visiting a page.", + "Purchase, sales, or \"order placed\" event.", + "Signup user action.", + "Lead-generating action.", + "Software download action (as for an app).", + "The addition of items to a shopping cart or bag on an advertiser site.", + "When someone enters the checkout flow on an advertiser site.", + "The start of a paid subscription for a product or service.", + "A call to indicate interest in an advertiser's offering.", + "A lead conversion imported from an external source into Google Ads.", + "A submission of a form on an advertiser site indicating business interest.", + "A booking of an appointment with an advertiser's business.", + "A quote or price estimate request.", + "A search for an advertiser's business location with intention to visit.", + "A click to an advertiser's partner's site.", + "A call, SMS, email, chat or other type of contact to an advertiser.", + "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.", + "A visit to a physical store location.", + "A sale occurring in a physical store.", + "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".", + "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser." + ], + "type": "string" + }, + "conversionActionName": { + "description": "Conversion action name.", + "type": "string" + }, + "date": { + "description": "Date to which metrics apply. yyyy-MM-dd format, for example, 2018-04-17.", + "type": "string" + }, + "dayOfWeek": { + "description": "Day of the week, for example, MONDAY.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "enumDescriptions": [ + "Not specified.", + "The value is unknown in this version.", + "Monday.", + "Tuesday.", + "Wednesday.", + "Thursday.", + "Friday.", + "Saturday.", + "Sunday." + ], + "type": "string" + }, + "device": { + "description": "Device to which metrics apply.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MOBILE", + "TABLET", + "DESKTOP", + "CONNECTED_TV", + "OTHER" + ], + "enumDescriptions": [ + "Not specified.", + "The value is unknown in this version.", + "Mobile devices with full browsers.", + "Tablets with full browsers.", + "Computers.", + "Smart TVs and game consoles.", + "Other device types." + ], + "type": "string" + }, + "month": { + "description": "Month as represented by the date of the first day of a month. Formatted as yyyy-MM-dd.", + "type": "string" + }, + "quarter": { + "description": "Quarter as represented by the date of the first day of a quarter. Uses the calendar year for quarters, for example, the second quarter of 2018 starts on 2018-04-01. Formatted as yyyy-MM-dd.", + "type": "string" + }, + "week": { + "description": "Week as defined as Monday through Sunday, and represented by the date of Monday. Formatted as yyyy-MM-dd.", + "type": "string" + }, + "year": { + "description": "Year, formatted as yyyy.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__TargetCpa": { + "description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", + "id": "GoogleAdsSearchads360V0Common__TargetCpa", + "properties": { + "cpcBidCeilingMicros": { + "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", + "format": "int64", + "type": "string" + }, + "cpcBidFloorMicros": { + "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", + "format": "int64", + "type": "string" + }, + "targetCpaMicros": { + "description": "Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__TargetCpm": { + "description": "Target CPM (cost per thousand impressions) is an automated bidding strategy that sets bids to optimize performance given the target CPM you set.", + "id": "GoogleAdsSearchads360V0Common__TargetCpm", + "properties": {}, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__TargetImpressionShare": { + "description": "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).", + "id": "GoogleAdsSearchads360V0Common__TargetImpressionShare", + "properties": { + "cpcBidCeilingMicros": { + "description": "The highest CPC bid the automated bidding system is permitted to specify. This is a required field entered by the advertiser that sets the ceiling and specified in local micros.", + "format": "int64", + "type": "string" + }, + "location": { + "description": "The targeted location on the search results page.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ANYWHERE_ON_PAGE", + "TOP_OF_PAGE", + "ABSOLUTE_TOP_OF_PAGE" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Any location on the web page.", + "Top box of ads.", + "Top slot in the top box of ads." + ], + "type": "string" + }, + "locationFractionMicros": { + "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__TargetOutrankShare": { + "description": "An automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This strategy is deprecated.", + "id": "GoogleAdsSearchads360V0Common__TargetOutrankShare", + "properties": { + "cpcBidCeilingMicros": { + "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__TargetRoas": { + "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).", + "id": "GoogleAdsSearchads360V0Common__TargetRoas", + "properties": { + "cpcBidCeilingMicros": { + "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", + "format": "int64", + "type": "string" + }, + "cpcBidFloorMicros": { + "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", + "format": "int64", + "type": "string" + }, + "targetRoas": { + "description": "Required. The chosen revenue (based on conversion data) per unit of spend. Value must be between 0.01 and 1000.0, inclusive.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__TargetSpend": { + "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.", + "id": "GoogleAdsSearchads360V0Common__TargetSpend", + "properties": { + "cpcBidCeilingMicros": { + "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.", + "format": "int64", + "type": "string" + }, + "targetSpendMicros": { + "description": "The spend target under which to maximize clicks. A TargetSpend bidder will attempt to spend the smaller of this value or the natural throttling spend amount. If not specified, the budget is used as the spend target. This field is deprecated and should no longer be used. See https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html for details.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__Value": { + "description": "A generic data container.", + "id": "GoogleAdsSearchads360V0Common__Value", + "properties": { + "booleanValue": { + "description": "A boolean.", + "type": "boolean" + }, + "doubleValue": { + "description": "A double.", + "format": "double", + "type": "number" + }, + "floatValue": { + "description": "A float.", + "format": "float", + "type": "number" + }, + "int64Value": { + "description": "An int64.", + "format": "int64", + "type": "string" + }, + "stringValue": { + "description": "A string.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__WebpageConditionInfo": { + "description": "Logical expression for targeting webpages of an advertiser's website.", + "id": "GoogleAdsSearchads360V0Common__WebpageConditionInfo", + "properties": { + "argument": { + "description": "Argument of webpage targeting condition.", + "type": "string" + }, + "operand": { + "description": "Operand of webpage targeting condition.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "URL", + "CATEGORY", + "PAGE_TITLE", + "PAGE_CONTENT", + "CUSTOM_LABEL" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Operand denoting a webpage URL targeting condition.", + "Operand denoting a webpage category targeting condition.", + "Operand denoting a webpage title targeting condition.", + "Operand denoting a webpage content targeting condition.", + "Operand denoting a webpage custom label targeting condition." + ], + "type": "string" + }, + "operator": { + "description": "Operator of webpage targeting condition.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EQUALS", + "CONTAINS" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "The argument web condition is equal to the compared web condition.", + "The argument web condition is part of the compared web condition." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Common__WebpageInfo": { + "description": "Represents a criterion for targeting webpages of an advertiser's website.", + "id": "GoogleAdsSearchads360V0Common__WebpageInfo", + "properties": { + "conditions": { + "description": "Conditions, or logical expressions, for webpage targeting. The list of webpage targeting conditions are and-ed together when evaluated for targeting. An empty list of conditions indicates all pages of the campaign's website are targeted. This field is required for CREATE operations and is prohibited on UPDATE operations.", + "items": { + "$ref": "GoogleAdsSearchads360V0Common__WebpageConditionInfo" + }, + "type": "array" + }, + "coveragePercentage": { + "description": "Website criteria coverage percentage. This is the computed percentage of website coverage based on the website target, negative website target and negative keywords in the ad group and campaign. For instance, when coverage returns as 1, it indicates it has 100% coverage. This field is read-only.", + "format": "double", + "type": "number" + }, + "criterionName": { + "description": "The name of the criterion that is defined by this parameter. The name value will be used for identifying, sorting and filtering criteria with this type of parameters. This field is required for CREATE operations and is prohibited on UPDATE operations.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement": { + "description": "A part of a field path.", + "id": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement", + "properties": { + "fieldName": { + "description": "The name of a field or a oneof", + "type": "string" + }, + "index": { + "description": "If field_name is a repeated field, this is the element that failed", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Errors__ErrorCode": { + "description": "The error reason represented by type and enum.", + "id": "GoogleAdsSearchads360V0Errors__ErrorCode", + "properties": { + "authenticationError": { + "description": "Indicates failure to properly authenticate user.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AUTHENTICATION_ERROR", + "CLIENT_CUSTOMER_ID_INVALID", + "CUSTOMER_NOT_FOUND", + "GOOGLE_ACCOUNT_DELETED", + "GOOGLE_ACCOUNT_COOKIE_INVALID", + "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED", + "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH", + "LOGIN_COOKIE_REQUIRED", + "NOT_ADS_USER", + "OAUTH_TOKEN_INVALID", + "OAUTH_TOKEN_EXPIRED", + "OAUTH_TOKEN_DISABLED", + "OAUTH_TOKEN_REVOKED", + "OAUTH_TOKEN_HEADER_INVALID", + "LOGIN_COOKIE_INVALID", + "USER_ID_INVALID", + "TWO_STEP_VERIFICATION_NOT_ENROLLED", + "ADVANCED_PROTECTION_NOT_ENROLLED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Authentication of the request failed.", + "Client customer ID is not a number.", + "No customer found for the provided customer ID.", + "Client's Google account is deleted.", + "Account login token in the cookie is invalid.", + "A problem occurred during Google account authentication.", + "The user in the Google account login token does not match the user ID in the cookie.", + "Login cookie is required for authentication.", + "User in the cookie is not a valid Ads user.", + "OAuth token in the header is not valid.", + "OAuth token in the header has expired.", + "OAuth token in the header has been disabled.", + "OAuth token in the header has been revoked.", + "OAuth token HTTP header is malformed.", + "Login cookie is not valid.", + "User ID in the header is not a valid ID.", + "An account administrator changed this account's authentication settings. To access this account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step.", + "An account administrator changed this account's authentication settings. To access this account, enable Advanced Protection in your Google account at https://landing.google.com/advancedprotection." + ], + "type": "string" + }, + "authorizationError": { + "description": "An error encountered when trying to authorize a user.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "USER_PERMISSION_DENIED", + "PROJECT_DISABLED", + "AUTHORIZATION_ERROR", + "ACTION_NOT_PERMITTED", + "INCOMPLETE_SIGNUP", + "CUSTOMER_NOT_ENABLED", + "MISSING_TOS", + "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION", + "SERVICE_ACCESS_DENIED", + "ACCESS_DENIED_FOR_ACCOUNT_TYPE", + "METRIC_ACCESS_DENIED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "User doesn't have permission to access customer. Note: If you're accessing a client customer, the manager's customer ID must be set in the `login-customer-id` header. Learn more at https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header", + "The Google Cloud project sent in the request does not have permission to access the api.", + "Authorization of the client failed.", + "The user does not have permission to perform this action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.", + "Signup not complete.", + "The customer account can't be accessed because it is not yet enabled or has been deactivated.", + "The developer must sign the terms of service. They can be found here: https://developers.google.com/terms", + "The login customer specified does not have access to the account specified, so the request is invalid.", + "The developer specified does not have access to the service.", + "The customer (or login customer) isn't allowed in Search Ads 360 API. It belongs to another ads system.", + "The developer does not have access to the metrics queried." + ], + "type": "string" + }, + "dateError": { + "description": "The reasons for the date error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_FIELD_VALUES_IN_DATE", + "INVALID_FIELD_VALUES_IN_DATE_TIME", + "INVALID_STRING_DATE", + "INVALID_STRING_DATE_TIME_MICROS", + "INVALID_STRING_DATE_TIME_SECONDS", + "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET", + "EARLIER_THAN_MINIMUM_DATE", + "LATER_THAN_MAXIMUM_DATE", + "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE", + "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Given field values do not correspond to a valid date.", + "Given field values do not correspond to a valid date time.", + "The string date's format should be yyyy-mm-dd.", + "The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss.", + "The string date time's format should be yyyy-mm-dd hh:mm:ss.", + "The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.", + "Date is before allowed minimum.", + "Date is after allowed maximum.", + "Date range bounds are not in order.", + "Both dates in range are null." + ], + "type": "string" + }, + "dateRangeError": { + "description": "The reasons for the date range error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_DATE", + "START_DATE_AFTER_END_DATE", + "CANNOT_SET_DATE_TO_PAST", + "AFTER_MAXIMUM_ALLOWABLE_DATE", + "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Invalid date.", + "The start date was after the end date.", + "Cannot set date to past time", + "A date was used that is past the system \"last\" date.", + "Trying to change start date on a resource that has started." + ], + "type": "string" + }, + "distinctError": { + "description": "The reasons for the distinct error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_ELEMENT", + "DUPLICATE_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Duplicate element.", + "Duplicate type." + ], + "type": "string" + }, + "headerError": { + "description": "The reasons for the header error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_USER_SELECTED_CUSTOMER_ID", + "INVALID_LOGIN_CUSTOMER_ID" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The user selected customer ID could not be validated.", + "The login customer ID could not be validated." + ], + "type": "string" + }, + "internalError": { + "description": "An unexpected server-side error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INTERNAL_ERROR", + "ERROR_CODE_NOT_PUBLISHED", + "TRANSIENT_ERROR", + "DEADLINE_EXCEEDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "API encountered unexpected internal error.", + "The intended error code doesn't exist in specified API version. It will be released in a future API version.", + "API encountered an unexpected transient error. The user should retry their request in these cases.", + "The request took longer than a deadline." + ], + "type": "string" + }, + "queryError": { + "description": "An error with the query", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "QUERY_ERROR", + "BAD_ENUM_CONSTANT", + "BAD_ESCAPE_SEQUENCE", + "BAD_FIELD_NAME", + "BAD_LIMIT_VALUE", + "BAD_NUMBER", + "BAD_OPERATOR", + "BAD_PARAMETER_NAME", + "BAD_PARAMETER_VALUE", + "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE", + "BAD_SYMBOL", + "BAD_VALUE", + "DATE_RANGE_TOO_WIDE", + "DATE_RANGE_TOO_NARROW", + "EXPECTED_AND", + "EXPECTED_BY", + "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE", + "EXPECTED_FILTERS_ON_DATE_RANGE", + "EXPECTED_FROM", + "EXPECTED_LIST", + "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE", + "EXPECTED_SELECT", + "EXPECTED_SINGLE_VALUE", + "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR", + "INVALID_DATE_FORMAT", + "MISALIGNED_DATE_FOR_FILTER", + "INVALID_STRING_VALUE", + "INVALID_VALUE_WITH_BETWEEN_OPERATOR", + "INVALID_VALUE_WITH_DURING_OPERATOR", + "INVALID_VALUE_WITH_LIKE_OPERATOR", + "OPERATOR_FIELD_MISMATCH", + "PROHIBITED_EMPTY_LIST_IN_CONDITION", + "PROHIBITED_ENUM_CONSTANT", + "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE", + "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE", + "PROHIBITED_FIELD_IN_SELECT_CLAUSE", + "PROHIBITED_FIELD_IN_WHERE_CLAUSE", + "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE", + "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE", + "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE", + "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE", + "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE", + "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE", + "LIMIT_VALUE_TOO_LOW", + "PROHIBITED_NEWLINE_IN_STRING", + "PROHIBITED_VALUE_COMBINATION_IN_LIST", + "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR", + "STRING_NOT_TERMINATED", + "TOO_MANY_SEGMENTS", + "UNEXPECTED_END_OF_QUERY", + "UNEXPECTED_FROM_CLAUSE", + "UNRECOGNIZED_FIELD", + "UNEXPECTED_INPUT", + "REQUESTED_METRICS_FOR_MANAGER", + "FILTER_HAS_TOO_MANY_VALUES" + ], + "enumDescriptions": [ + "Name unspecified.", + "The received error code is not known in this version.", + "Returned if all other query error reasons are not applicable.", + "A condition used in the query references an invalid enum constant.", + "Query contains an invalid escape sequence.", + "Field name is invalid.", + "Limit value is invalid (for example, not a number)", + "Encountered number can not be parsed.", + "Invalid operator encountered.", + "Parameter unknown or not supported.", + "Parameter have invalid value.", + "Invalid resource type was specified in the FROM clause.", + "Non-ASCII symbol encountered outside of strings.", + "Value is invalid.", + "Date filters fail to restrict date to a range smaller than 31 days. Applicable if the query is segmented by date.", + "Filters on date/week/month/quarter have a start date after end date.", + "Expected AND between values with BETWEEN operator.", + "Expecting ORDER BY to have BY.", + "There was no dimension field selected.", + "Missing filters on date related fields.", + "Missing FROM clause.", + "The operator used in the conditions requires the value to be a list.", + "Fields used in WHERE or ORDER BY clauses are missing from the SELECT clause.", + "SELECT is missing at the beginning of query.", + "A list was passed as a value to a condition whose operator expects a single value.", + "Missing one or both values with BETWEEN operator.", + "Invalid date format. Expected 'YYYY-MM-DD'.", + "Misaligned date value for the filter. The date should be the start of a week/month/quarter if the filtered field is segments.week/segments.month/segments.quarter.", + "Value passed was not a string when it should have been. For example, it was a number or unquoted literal.", + "A String value passed to the BETWEEN operator does not parse as a date.", + "The value passed to the DURING operator is not a Date range literal", + "A value was passed to the LIKE operator.", + "An operator was provided that is inapplicable to the field being filtered.", + "A Condition was found with an empty list.", + "A condition used in the query references an unsupported enum constant.", + "Fields that are not allowed to be selected together were included in the SELECT clause.", + "A field that is not orderable was included in the ORDER BY clause.", + "A field that is not selectable was included in the SELECT clause.", + "A field that is not filterable was included in the WHERE clause.", + "Resource type specified in the FROM clause is not supported by this service.", + "A field that comes from an incompatible resource was included in the SELECT clause.", + "A field that comes from an incompatible resource was included in the WHERE clause.", + "A metric incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.", + "A segment incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.", + "A segment in the SELECT clause is incompatible with a metric in the SELECT or WHERE clause.", + "The value passed to the limit clause is too low.", + "Query has a string containing a newline character.", + "List contains values of different types.", + "The values passed to the BETWEEN operator are not of the same type.", + "Query contains unterminated string.", + "Too many segments are specified in SELECT clause.", + "Query is incomplete and cannot be parsed.", + "FROM clause cannot be specified in this query.", + "Query contains one or more unrecognized fields.", + "Query has an unexpected extra part.", + "Metrics cannot be requested for a manager account. To retrieve metrics, issue separate requests against each client account under the manager account.", + "The number of values (right-hand-side operands) in a filter exceeds the limit." + ], + "type": "string" + }, + "quotaError": { + "description": "An error with the amonut of quota remaining.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "RESOURCE_EXHAUSTED", + "ACCESS_PROHIBITED", + "RESOURCE_TEMPORARILY_EXHAUSTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Too many requests.", + "Access is prohibited.", + "Too many requests in a short amount of time." + ], + "type": "string" + }, + "requestError": { + "description": "An error caused by the request", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "RESOURCE_NAME_MISSING", + "RESOURCE_NAME_MALFORMED", + "BAD_RESOURCE_ID", + "INVALID_PRODUCT_NAME", + "INVALID_CUSTOMER_ID", + "OPERATION_REQUIRED", + "RESOURCE_NOT_FOUND", + "INVALID_PAGE_TOKEN", + "EXPIRED_PAGE_TOKEN", + "INVALID_PAGE_SIZE", + "REQUIRED_FIELD_MISSING", + "IMMUTABLE_FIELD", + "TOO_MANY_MUTATE_OPERATIONS", + "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT", + "CANNOT_MODIFY_FOREIGN_FIELD", + "INVALID_ENUM_VALUE", + "LOGIN_CUSTOMER_ID_PARAMETER_MISSING", + "LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED", + "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN", + "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS", + "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS", + "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE", + "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED", + "RPC_DEADLINE_TOO_SHORT", + "PRODUCT_NOT_SUPPORTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Resource name is required for this request.", + "Resource name provided is malformed.", + "Resource name provided is malformed.", + "Product name is invalid.", + "Customer ID is invalid.", + "Mutate operation should have either create, update, or remove specified.", + "Requested resource not found.", + "Next page token specified in user request is invalid.", + "Next page token specified in user request has expired.", + "Page size specified in user request is invalid.", + "Required field is missing.", + "The field cannot be modified because it's immutable. It's also possible that the field can be modified using 'create' operation but not 'update'.", + "Received too many entries in request.", + "Request cannot be executed by a manager account.", + "Mutate request was attempting to modify a readonly field. For instance, Budget fields can be requested for Ad Group, but are read-only for adGroups:mutate.", + "Enum value is not permitted.", + "The login-customer-id parameter is required for this request.", + "Either login-customer-id or linked-customer-id parameter is required for this request.", + "page_token is set in the validate only request", + "return_summary_row cannot be enabled if request did not select any metrics field.", + "return_summary_row should not be enabled for validate only requests.", + "return_summary_row parameter value should be the same between requests with page_token field set and their original request.", + "The total results count cannot be returned if it was not requested in the original request.", + "Deadline specified by the client was too short.", + "The product associated with the request is not supported for the current request." + ], + "type": "string" + }, + "sizeLimitError": { + "description": "The reasons for the size limit error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "REQUEST_SIZE_LIMIT_EXCEEDED", + "RESPONSE_SIZE_LIMIT_EXCEEDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The number of entries in the request exceeds the system limit, or the contents of the operations exceed transaction limits due to their size or complexity. Try reducing the number of entries per request.", + "The number of entries in the response exceeds the system limit." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Errors__ErrorDetails": { + "description": "Additional error details.", + "id": "GoogleAdsSearchads360V0Errors__ErrorDetails", + "properties": { + "quotaErrorDetails": { + "$ref": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails", + "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay." + }, + "unpublishedErrorCode": { + "description": "The error code that should have been returned, but wasn't. This is used when the error code is not published in the client specified version.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Errors__ErrorLocation": { + "description": "Describes the part of the request proto that caused the error.", + "id": "GoogleAdsSearchads360V0Errors__ErrorLocation", + "properties": { + "fieldPathElements": { + "description": "A field path that indicates which field was invalid in the request.", + "items": { + "$ref": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Errors__QuotaErrorDetails": { + "description": "Additional quota error details when there is QuotaError.", + "id": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails", + "properties": { + "rateName": { + "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\".", + "type": "string" + }, + "rateScope": { + "description": "The rate scope of the quota limit.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ACCOUNT", + "DEVELOPER" + ], + "enumDescriptions": [ + "Unspecified enum", + "Used for return value only. Represents value unknown in this version.", + "Per customer account quota", + "Per project quota" + ], + "type": "string" + }, + "retryDelay": { + "description": "Backoff period that customers should wait before sending next request.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Errors__SearchAds360Error": { + "description": "SearchAds360-specific error.", + "id": "GoogleAdsSearchads360V0Errors__SearchAds360Error", + "properties": { + "details": { + "$ref": "GoogleAdsSearchads360V0Errors__ErrorDetails", + "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details." + }, + "errorCode": { + "$ref": "GoogleAdsSearchads360V0Errors__ErrorCode", + "description": "An enum value that indicates which error occurred." + }, + "location": { + "$ref": "GoogleAdsSearchads360V0Errors__ErrorLocation", + "description": "Describes the part of the request proto that caused the error." + }, + "message": { + "description": "A human-readable description of the error.", + "type": "string" + }, + "trigger": { + "$ref": "GoogleAdsSearchads360V0Common__Value", + "description": "The value that triggered the error." + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Errors__SearchAds360Failure": { + "description": "Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call fails.", + "id": "GoogleAdsSearchads360V0Errors__SearchAds360Failure", + "properties": { + "errors": { + "description": "The list of errors that occurred.", + "items": { + "$ref": "GoogleAdsSearchads360V0Errors__SearchAds360Error" + }, + "type": "array" + }, + "requestId": { + "description": "The unique ID of the request that is used for debugging purposes.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo": { + "description": "A container for ad group criterion quality information.", + "id": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo", + "properties": { + "qualityScore": { + "description": "Output only. The quality score. This field may not be populated if Google does not have enough information to determine a value.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting": { + "description": "The setting for controlling Dynamic Search Ads (DSA).", + "id": "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting", + "properties": { + "domainName": { + "description": "Required. The Internet domain name that this setting represents, for example, \"google.com\" or \"www.google.com\".", + "type": "string" + }, + "languageCode": { + "description": "Required. The language code specifying the language of the domain, for example, \"en\".", + "type": "string" + }, + "useSuppliedUrlsOnly": { + "description": "Whether the campaign uses advertiser supplied URLs exclusively.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting": { + "description": "Represents a collection of settings related to ads geotargeting.", + "id": "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting", + "properties": { + "negativeGeoTargetType": { + "description": "The setting used for negative geotargeting in this particular campaign.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "PRESENCE_OR_INTEREST", + "PRESENCE" + ], + "enumDescriptions": [ + "Not specified.", + "The value is unknown in this version.", + "Specifies that a user is excluded from seeing the ad if they are in, or show interest in, advertiser's excluded locations.", + "Specifies that a user is excluded from seeing the ad if they are in advertiser's excluded locations." + ], + "type": "string" + }, + "positiveGeoTargetType": { + "description": "The setting used for positive geotargeting in this particular campaign.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "PRESENCE_OR_INTEREST", + "SEARCH_INTEREST", + "PRESENCE" + ], + "enumDescriptions": [ + "Not specified.", + "The value is unknown in this version.", + "Specifies that an ad is triggered if the user is in, or shows interest in, advertiser's targeted locations.", + "Specifies that an ad is triggered if the user searches for advertiser's targeted locations. This can only be used with Search and standard Shopping campaigns.", + "Specifies that an ad is triggered if the user is in or regularly in advertiser's targeted locations." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings": { + "description": "The network settings for the campaign.", + "id": "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings", + "properties": { + "targetContentNetwork": { + "description": "Whether ads will be served on specified placements in the Google Display Network. Placements are specified using the Placement criterion.", + "type": "boolean" + }, + "targetGoogleSearch": { + "description": "Whether ads will be served with google.com search results.", + "type": "boolean" + }, + "targetPartnerSearchNetwork": { + "description": "Whether ads will be served on the Google Partner Network. This is available only to some select Google partner accounts.", + "type": "boolean" + }, + "targetSearchNetwork": { + "description": "Whether ads will be served on partner sites in the Google Search Network (requires `target_google_search` to also be `true`).", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting": { + "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.", + "id": "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting", + "properties": { + "optimizationGoalTypes": { + "description": "The list of optimization goal types.", + "items": { + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CALL_CLICKS", + "DRIVING_DIRECTIONS", + "APP_PRE_REGISTRATION" + ], + "enumDescriptions": [ + "Not specified.", + "Used as a return value only. Represents value unknown in this version.", + "Optimize for call clicks. Call click conversions are times people selected 'Call' to contact a store after viewing an ad.", + "Optimize for driving directions. Driving directions conversions are times people selected 'Get directions' to navigate to a store after viewing an ad.", + "Optimize for pre-registration. Pre-registration conversions are the number of pre-registration signups to receive a notification when the app is released." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization": { + "description": "Selective optimization setting for this campaign, which includes a set of conversion actions to optimize this campaign towards.", + "id": "GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization", + "properties": { + "conversionActions": { + "description": "The selected set of conversion actions for optimizing this campaign.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting": { + "description": "The setting for Shopping campaigns. Defines the universe of products that can be advertised by the campaign, and how this campaign interacts with other Shopping campaigns.", + "id": "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting", + "properties": { + "campaignPriority": { + "description": "Priority of the campaign. Campaigns with numerically higher priorities take precedence over those with lower priorities. This field is required for Shopping campaigns, with values between 0 and 2, inclusive. This field is optional for Smart Shopping campaigns, but must be equal to 3 if set.", + "format": "int32", + "type": "integer" + }, + "enableLocal": { + "description": "Whether to include local products.", + "type": "boolean" + }, + "feedLabel": { + "description": "Feed label of products to include in the campaign. Only one of feed_label or sales_country can be set. If used instead of sales_country, the feed_label field accepts country codes in the same format for example: 'XX'. Otherwise can be any string used for feed label in Google Merchant Center.", + "type": "string" + }, + "merchantId": { + "description": "Immutable. ID of the Merchant Center account. This field is required for create operations. This field is immutable for Shopping campaigns.", + "format": "int64", + "type": "string" + }, + "salesCountry": { + "description": "Sales country of products to include in the campaign. ", + "type": "string" + }, + "useVehicleInventory": { + "description": "Immutable. Whether to target Vehicle Listing inventory.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting": { + "description": "Campaign-level settings for tracking information.", + "id": "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting", + "properties": { + "trackingUrl": { + "description": "Output only. The url used for dynamic tracking.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings": { + "description": "Settings related to this conversion action's attribution model.", + "id": "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings", + "properties": { + "attributionModel": { + "description": "The attribution model type of this conversion action.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EXTERNAL", + "GOOGLE_ADS_LAST_CLICK", + "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK", + "GOOGLE_SEARCH_ATTRIBUTION_LINEAR", + "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY", + "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED", + "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Uses external attribution.", + "Attributes all credit for a conversion to its last click.", + "Attributes all credit for a conversion to its first click using Google Search attribution.", + "Attributes credit for a conversion equally across all of its clicks using Google Search attribution.", + "Attributes exponentially more credit for a conversion to its more recent clicks using Google Search attribution (half-life is 1 week).", + "Attributes 40% of the credit for a conversion to its first and last clicks. Remaining 20% is evenly distributed across all other clicks. This uses Google Search attribution.", + "Flexible model that uses machine learning to determine the appropriate distribution of credit among clicks using Google Search attribution." + ], + "type": "string" + }, + "dataDrivenModelStatus": { + "description": "Output only. The status of the data-driven attribution model for the conversion action.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AVAILABLE", + "STALE", + "EXPIRED", + "NEVER_GENERATED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "The data driven model is available.", + "The data driven model is stale. It hasn't been updated for at least 7 days. It is still being used, but will become expired if it does not get updated for 30 days.", + "The data driven model expired. It hasn't been updated for at least 30 days and cannot be used. Most commonly this is because there hasn't been the required number of events in a recent 30-day period.", + "The data driven model has never been generated. Most commonly this is because there has never been the required number of events in any 30-day period." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings": { + "description": "Settings related to a Floodlight conversion action.", + "id": "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings", + "properties": { + "activityGroupTag": { + "description": "Output only. String used to identify a Floodlight activity group when reporting conversions.", + "readOnly": true, + "type": "string" + }, + "activityId": { + "description": "Output only. ID of the Floodlight activity in DoubleClick Campaign Manager (DCM).", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "activityTag": { + "description": "Output only. String used to identify a Floodlight activity when reporting conversions.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings": { + "description": "Settings related to the value for conversion events associated with this conversion action.", + "id": "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings", + "properties": { + "alwaysUseDefaultValue": { + "description": "Controls whether the default value and default currency code are used in place of the value and currency code specified in conversion events for this conversion action.", + "type": "boolean" + }, + "defaultCurrencyCode": { + "description": "The currency code to use when conversion events for this conversion action are sent with an invalid or missing currency code, or when this conversion action is configured to always use the default value.", + "type": "string" + }, + "defaultValue": { + "description": "The value to use when conversion events for this conversion action are sent with an invalid, disallowed or missing value, or when this conversion action is configured to always use the default value.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__AdGroup": { + "description": "An ad group.", + "id": "GoogleAdsSearchads360V0Resources__AdGroup", + "properties": { + "adRotationMode": { + "description": "The ad rotation mode of the ad group.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "OPTIMIZE", + "ROTATE_FOREVER" + ], + "enumDescriptions": [ + "The ad rotation mode has not been specified.", + "The received value is not known in this version. This is a response-only value.", + "Optimize ad group ads based on clicks or conversions.", + "Rotate evenly forever." + ], + "type": "string" + }, + "cpcBidMicros": { + "description": "The maximum CPC (cost-per-click) bid.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "Output only. The ID of the ad group.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "The name of the ad group. This field is required and should not be empty when creating new ad groups. It must contain fewer than 255 UTF-8 full-width characters. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.", + "type": "string" + }, + "resourceName": { + "description": "Immutable. The resource name of the ad group. Ad group resource names have the form: `customers/{customer_id}/adGroups/{ad_group_id}`", + "type": "string" + }, + "status": { + "description": "The status of the ad group.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "PAUSED", + "REMOVED" + ], + "enumDescriptions": [ + "The status has not been specified.", + "The received value is not known in this version. This is a response-only value.", + "The ad group is enabled.", + "The ad group is paused.", + "The ad group is removed." + ], + "type": "string" + }, + "type": { + "description": "Immutable. The type of the ad group.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "SEARCH_STANDARD", + "DISPLAY_STANDARD", + "SHOPPING_PRODUCT_ADS", + "SHOPPING_SHOWCASE_ADS", + "HOTEL_ADS", + "SHOPPING_SMART_ADS", + "VIDEO_BUMPER", + "VIDEO_TRUE_VIEW_IN_STREAM", + "VIDEO_TRUE_VIEW_IN_DISPLAY", + "VIDEO_NON_SKIPPABLE_IN_STREAM", + "VIDEO_OUTSTREAM", + "SEARCH_DYNAMIC_ADS", + "SHOPPING_COMPARISON_LISTING_ADS", + "PROMOTED_HOTEL_ADS", + "VIDEO_RESPONSIVE", + "VIDEO_EFFICIENT_REACH", + "SMART_CAMPAIGN_ADS" + ], + "enumDescriptions": [ + "The type has not been specified.", + "The received value is not known in this version. This is a response-only value.", + "The default ad group type for Search campaigns.", + "The default ad group type for Display campaigns.", + "The ad group type for Shopping campaigns serving standard product ads.", + "The type for ad groups that are limited to serving Showcase or Merchant ads in Shopping results.", + "The default ad group type for Hotel campaigns.", + "The type for ad groups in Smart Shopping campaigns.", + "Short unskippable in-stream video ads.", + "TrueView (skippable) in-stream video ads.", + "TrueView in-display video ads.", + "Unskippable in-stream video ads.", + "Outstream video ads.", + "Ad group type for Dynamic Search Ads ad groups.", + "The type for ad groups in Shopping Comparison Listing campaigns.", + "The ad group type for Promoted Hotel ad groups.", + "Video responsive ad groups.", + "Video efficient reach ad groups.", + "Ad group type for Smart campaigns." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__AdGroupBidModifier": { + "description": "Represents an ad group bid modifier.", + "id": "GoogleAdsSearchads360V0Resources__AdGroupBidModifier", + "properties": { + "bidModifier": { + "description": "The modifier for the bid when the criterion matches. The modifier must be in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. Use 0 to opt out of a Device type.", + "format": "double", + "type": "number" + }, + "resourceName": { + "description": "Immutable. The resource name of the ad group bid modifier. Ad group bid modifier resource names have the form: `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__AdGroupCriterion": { + "description": "An ad group criterion.", + "id": "GoogleAdsSearchads360V0Resources__AdGroupCriterion", + "properties": { + "adGroup": { + "description": "Immutable. The ad group to which the criterion belongs.", + "type": "string" + }, + "ageRange": { + "$ref": "GoogleAdsSearchads360V0Common__AgeRangeInfo", + "description": "Immutable. Age range." + }, + "bidModifier": { + "description": "The modifier for the bid when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Most targetable criteria types support modifiers.", + "format": "double", + "type": "number" + }, + "cpcBidMicros": { + "description": "The CPC (cost-per-click) bid.", + "format": "int64", + "type": "string" + }, + "criterionId": { + "description": "Output only. The ID of the criterion.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "effectiveCpcBidMicros": { + "description": "Output only. The effective CPC (cost-per-click) bid.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "engineStatus": { + "description": "Output only. The Engine Status for ad group criterion.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_GROUP_CRITERION_ELIGIBLE", + "AD_GROUP_CRITERION_INAPPROPRIATE_FOR_CAMPAIGN", + "AD_GROUP_CRITERION_INVALID_MOBILE_SEARCH", + "AD_GROUP_CRITERION_INVALID_PC_SEARCH", + "AD_GROUP_CRITERION_INVALID_SEARCH", + "AD_GROUP_CRITERION_LOW_SEARCH_VOLUME", + "AD_GROUP_CRITERION_MOBILE_URL_UNDER_REVIEW", + "AD_GROUP_CRITERION_PARTIALLY_INVALID", + "AD_GROUP_CRITERION_TO_BE_ACTIVATED", + "AD_GROUP_CRITERION_UNDER_REVIEW", + "AD_GROUP_CRITERION_NOT_REVIEWED", + "AD_GROUP_CRITERION_ON_HOLD", + "AD_GROUP_CRITERION_PENDING_REVIEW", + "AD_GROUP_CRITERION_PAUSED", + "AD_GROUP_CRITERION_REMOVED", + "AD_GROUP_CRITERION_APPROVED", + "AD_GROUP_CRITERION_DISAPPROVED", + "AD_GROUP_CRITERION_SERVING", + "AD_GROUP_CRITERION_ACCOUNT_PAUSED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Deprecated. Do not use.", + "Baidu: Bid or quality too low to be displayed.", + "Baidu: Bid or quality too low for mobile, but eligible to display for desktop.", + "Baidu: Bid or quality too low for desktop, but eligible to display for mobile.", + "Baidu: Bid or quality too low to be displayed.", + "Baidu: Paused by Baidu due to low search volume.", + "Baidu: Mobile URL in process to be reviewed.", + "Baidu: The landing page for one device is invalid, while the landing page for the other device is valid.", + "Baidu: Keyword has been created and paused by Baidu account management, and is now ready for you to activate it.", + "Baidu: In process to be reviewed by Baidu. Gemini: Criterion under review.", + "Baidu: Criterion to be reviewed.", + "Deprecated. Do not use. Previously used by Gemini", + "Y!J : Criterion pending review", + "Criterion has been paused.", + "Criterion has been removed.", + "Criterion has been approved.", + "Criterion has been disapproved.", + "Criterion is active and serving.", + "Criterion has been paused since the account is paused." + ], + "readOnly": true, + "type": "string" + }, + "finalUrlSuffix": { + "description": "URL template for appending params to final URL.", + "type": "string" + }, + "finalUrls": { + "description": "The list of possible final URLs after all cross-domain redirects for the ad.", + "items": { + "type": "string" + }, + "type": "array" + }, + "gender": { + "$ref": "GoogleAdsSearchads360V0Common__GenderInfo", + "description": "Immutable. Gender." + }, + "keyword": { + "$ref": "GoogleAdsSearchads360V0Common__KeywordInfo", + "description": "Immutable. Keyword." + }, + "lastModifiedTime": { + "description": "Output only. The datetime when this ad group criterion was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", + "readOnly": true, + "type": "string" + }, + "listingGroup": { + "$ref": "GoogleAdsSearchads360V0Common__ListingGroupInfo", + "description": "Immutable. Listing group." + }, + "qualityInfo": { + "$ref": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo", + "description": "Output only. Information regarding the quality of the criterion.", + "readOnly": true + }, + "resourceName": { + "description": "Immutable. The resource name of the ad group criterion. Ad group criterion resource names have the form: `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`", + "type": "string" + }, + "status": { + "description": "The status of the criterion. This is the status of the ad group criterion entity, set by the client. Note: UI reports may incorporate additional information that affects whether a criterion is eligible to run. In some cases a criterion that's REMOVED in the API can still show as enabled in the UI. For example, campaigns by default show to users of all age ranges unless excluded. The UI will show each age range as \"enabled\", since they're eligible to see the ads; but AdGroupCriterion.status will show \"removed\", since no positive criterion was added.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "PAUSED", + "REMOVED" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "The ad group criterion is enabled.", + "The ad group criterion is paused.", + "The ad group criterion is removed." + ], + "type": "string" + }, + "trackingUrlTemplate": { + "description": "The URL template for constructing a tracking URL.", + "type": "string" + }, + "type": { + "description": "Output only. The type of the criterion.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "KEYWORD", + "PLACEMENT", + "MOBILE_APP_CATEGORY", + "MOBILE_APPLICATION", + "DEVICE", + "LOCATION", + "LISTING_GROUP", + "AD_SCHEDULE", + "AGE_RANGE", + "GENDER", + "INCOME_RANGE", + "PARENTAL_STATUS", + "YOUTUBE_VIDEO", + "YOUTUBE_CHANNEL", + "USER_LIST", + "PROXIMITY", + "TOPIC", + "LISTING_SCOPE", + "LANGUAGE", + "IP_BLOCK", + "CONTENT_LABEL", + "CARRIER", + "USER_INTEREST", + "WEBPAGE", + "OPERATING_SYSTEM_VERSION", + "APP_PAYMENT_MODEL", + "MOBILE_DEVICE", + "CUSTOM_AFFINITY", + "CUSTOM_INTENT", + "LOCATION_GROUP", + "CUSTOM_AUDIENCE", + "COMBINED_AUDIENCE", + "KEYWORD_THEME", + "AUDIENCE", + "LOCAL_SERVICE_ID" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Keyword, for example, 'mars cruise'.", + "Placement, also known as Website, for example, 'www.flowers4sale.com'", + "Mobile application categories to target.", + "Mobile applications to target.", + "Devices to target.", + "Locations to target.", + "Listing groups to target.", + "Ad Schedule.", + "Age range.", + "Gender.", + "Income Range.", + "Parental status.", + "YouTube Video.", + "YouTube Channel.", + "User list.", + "Proximity.", + "A topic target on the display network (for example, \"Pets \u0026 Animals\").", + "Listing scope to target.", + "Language.", + "IpBlock.", + "Content Label for category exclusion.", + "Carrier.", + "A category the user is interested in.", + "Webpage criterion for dynamic search ads.", + "Operating system version.", + "App payment model.", + "Mobile device.", + "Custom affinity.", + "Custom intent.", + "Location group.", + "Custom audience", + "Combined audience", + "Smart Campaign keyword theme", + "Audience", + "Google Local Services (GLS) Service ID." + ], + "readOnly": true, + "type": "string" + }, + "webpage": { + "$ref": "GoogleAdsSearchads360V0Common__WebpageInfo", + "description": "Immutable. Webpage" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__BiddingStrategy": { + "description": "A bidding strategy.", + "id": "GoogleAdsSearchads360V0Resources__BiddingStrategy", + "properties": { + "campaignCount": { + "description": "Output only. The number of campaigns attached to this bidding strategy. This field is read-only.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "currencyCode": { + "description": "Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code). For bidding strategies in manager customers, this currency can be set on creation and defaults to the manager customer's currency. For serving customers, this field cannot be set; all strategies in a serving customer implicitly use the serving customer's currency. In all cases the effective_currency_code field returns the currency used by the strategy.", + "type": "string" + }, + "effectiveCurrencyCode": { + "description": "Output only. The currency used by the bidding strategy (ISO 4217 three-letter code). For bidding strategies in manager customers, this is the currency set by the advertiser when creating the strategy. For serving customers, this is the customer's currency_code. Bidding strategy metrics are reported in this currency. This field is read-only.", + "readOnly": true, + "type": "string" + }, + "enhancedCpc": { + "$ref": "GoogleAdsSearchads360V0Common__EnhancedCpc", + "description": "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." + }, + "id": { + "description": "Output only. The ID of the bidding strategy.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "maximizeConversionValue": { + "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversionValue", + "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget." + }, + "maximizeConversions": { + "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversions", + "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget." + }, + "name": { + "description": "The name of the bidding strategy. All bidding strategies within an account must be named distinctly. The length of this string should be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed).", + "type": "string" + }, + "nonRemovedCampaignCount": { + "description": "Output only. The number of non-removed campaigns attached to this bidding strategy. This field is read-only.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "resourceName": { + "description": "Immutable. The resource name of the bidding strategy. Bidding strategy resource names have the form: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`", + "type": "string" + }, + "status": { + "description": "Output only. The status of the bidding strategy. This field is read-only.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "REMOVED" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "The bidding strategy is enabled.", + "The bidding strategy is removed." + ], + "readOnly": true, + "type": "string" + }, + "targetCpa": { + "$ref": "GoogleAdsSearchads360V0Common__TargetCpa", + "description": "A bidding strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set." + }, + "targetImpressionShare": { + "$ref": "GoogleAdsSearchads360V0Common__TargetImpressionShare", + "description": "A bidding strategy that automatically optimizes towards a chosen percentage of impressions." + }, + "targetOutrankShare": { + "$ref": "GoogleAdsSearchads360V0Common__TargetOutrankShare", + "description": "A bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This field is deprecated. Creating a new bidding strategy with this field or attaching bidding strategies with this field to a campaign will fail. Mutates to strategies that already have this scheme populated are allowed." + }, + "targetRoas": { + "$ref": "GoogleAdsSearchads360V0Common__TargetRoas", + "description": "A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS)." + }, + "targetSpend": { + "$ref": "GoogleAdsSearchads360V0Common__TargetSpend", + "description": "A bid strategy that sets your bids to help get as many clicks as possible within your budget." + }, + "type": { + "description": "Output only. The type of the bidding strategy. Create a bidding strategy by setting the bidding scheme. This field is read-only.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "COMMISSION", + "ENHANCED_CPC", + "INVALID", + "MANUAL_CPA", + "MANUAL_CPC", + "MANUAL_CPM", + "MANUAL_CPV", + "MAXIMIZE_CONVERSIONS", + "MAXIMIZE_CONVERSION_VALUE", + "PAGE_ONE_PROMOTED", + "PERCENT_CPC", + "TARGET_CPA", + "TARGET_CPM", + "TARGET_IMPRESSION_SHARE", + "TARGET_OUTRANK_SHARE", + "TARGET_ROAS", + "TARGET_SPEND" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.", + "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.", + "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.", + "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.", + "Manual click based bidding where user pays per click.", + "Manual impression based bidding where user pays per thousand impressions.", + "A bidding strategy that pays a configurable amount per video view.", + "A bidding strategy that automatically maximizes number of conversions given a daily budget.", + "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.", + "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.", + "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.", + "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", + "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.", + "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).", + "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.", + "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).", + "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__Campaign": { + "description": "A campaign.", + "id": "GoogleAdsSearchads360V0Resources__Campaign", + "properties": { + "adServingOptimizationStatus": { + "description": "The ad serving optimization status of the campaign.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "OPTIMIZE", + "CONVERSION_OPTIMIZE", + "ROTATE", + "ROTATE_INDEFINITELY", + "UNAVAILABLE" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "Ad serving is optimized based on CTR for the campaign.", + "Ad serving is optimized based on CTR * Conversion for the campaign. If the campaign is not in the conversion optimizer bidding strategy, it will default to OPTIMIZED.", + "Ads are rotated evenly for 90 days, then optimized for clicks.", + "Show lower performing ads more evenly with higher performing ads, and do not optimize.", + "Ad serving optimization status is not available." + ], + "type": "string" + }, + "advertisingChannelSubType": { + "description": "Immutable. Optional refinement to `advertising_channel_type`. Must be a valid sub-type of the parent channel type. Can be set only when creating campaigns. After campaign is created, the field can not be changed.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "SEARCH_MOBILE_APP", + "DISPLAY_MOBILE_APP", + "SEARCH_EXPRESS", + "DISPLAY_EXPRESS", + "SHOPPING_SMART_ADS", + "DISPLAY_GMAIL_AD", + "DISPLAY_SMART_CAMPAIGN", + "VIDEO_OUTSTREAM", + "VIDEO_ACTION", + "VIDEO_NON_SKIPPABLE", + "APP_CAMPAIGN", + "APP_CAMPAIGN_FOR_ENGAGEMENT", + "LOCAL_CAMPAIGN", + "SHOPPING_COMPARISON_LISTING_ADS", + "SMART_CAMPAIGN", + "VIDEO_SEQUENCE", + "APP_CAMPAIGN_FOR_PRE_REGISTRATION", + "VIDEO_REACH_TARGET_FREQUENCY" + ], + "enumDescriptions": [ + "Not specified.", + "Used as a return value only. Represents value unknown in this version.", + "Mobile app campaigns for Search.", + "Mobile app campaigns for Display.", + "AdWords express campaigns for search.", + "AdWords Express campaigns for display.", + "Smart Shopping campaigns.", + "Gmail Ad campaigns.", + "Smart display campaigns.", + "Video Outstream campaigns.", + "Video TrueView for Action campaigns.", + "Video campaigns with non-skippable video ads.", + "App Campaign that lets you easily promote your Android or iOS app across Google's top properties including Search, Play, YouTube, and the Google Display Network.", + "App Campaign for engagement, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.", + "Campaigns specialized for local advertising.", + "Shopping Comparison Listing campaigns.", + "Standard Smart campaigns.", + "Video campaigns with sequence video ads.", + "App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network.", + "Video reach campaign with Target Frequency bidding strategy." + ], + "type": "string" + }, + "advertisingChannelType": { + "description": "Immutable. The primary serving target for ads within the campaign. The targeting options can be refined in `network_settings`. This field is required and should not be empty when creating new campaigns. Can be set only when creating campaigns. After the campaign is created, the field can not be changed.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "SEARCH", + "DISPLAY", + "SHOPPING", + "HOTEL", + "VIDEO", + "MULTI_CHANNEL", + "LOCAL", + "SMART", + "PERFORMANCE_MAX", + "LOCAL_SERVICES", + "DISCOVERY" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Search Network. Includes display bundled, and Search+ campaigns.", + "Google Display Network only.", + "Shopping campaigns serve on the shopping property and on google.com search results.", + "Hotel Ads campaigns.", + "Video campaigns.", + "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.", + "Local ads campaigns.", + "Smart campaigns.", + "Performance Max campaigns.", + "Local services campaigns.", + "Discovery campaigns." + ], + "type": "string" + }, + "biddingStrategy": { + "description": "Portfolio bidding strategy used by campaign.", + "type": "string" + }, + "biddingStrategySystemStatus": { + "description": "Output only. The system status of the campaign's bidding strategy.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "LEARNING_NEW", + "LEARNING_SETTING_CHANGE", + "LEARNING_BUDGET_CHANGE", + "LEARNING_COMPOSITION_CHANGE", + "LEARNING_CONVERSION_TYPE_CHANGE", + "LEARNING_CONVERSION_SETTING_CHANGE", + "LIMITED_BY_CPC_BID_CEILING", + "LIMITED_BY_CPC_BID_FLOOR", + "LIMITED_BY_DATA", + "LIMITED_BY_BUDGET", + "LIMITED_BY_LOW_PRIORITY_SPEND", + "LIMITED_BY_LOW_QUALITY", + "LIMITED_BY_INVENTORY", + "MISCONFIGURED_ZERO_ELIGIBILITY", + "MISCONFIGURED_CONVERSION_TYPES", + "MISCONFIGURED_CONVERSION_SETTINGS", + "MISCONFIGURED_SHARED_BUDGET", + "MISCONFIGURED_STRATEGY_TYPE", + "PAUSED", + "UNAVAILABLE", + "MULTIPLE_LEARNING", + "MULTIPLE_LIMITED", + "MULTIPLE_MISCONFIGURED", + "MULTIPLE" + ], + "enumDescriptions": [ + "Signals that an unexpected error occurred, for example, no bidding strategy type was found, or no status information was found.", + "Used for return value only. Represents value unknown in this version.", + "The bid strategy is active, and AdWords cannot find any specific issues with the strategy.", + "The bid strategy is learning because it has been recently created or recently reactivated.", + "The bid strategy is learning because of a recent setting change.", + "The bid strategy is learning because of a recent budget change.", + "The bid strategy is learning because of recent change in number of campaigns, ad groups or keywords attached to it.", + "The bid strategy depends on conversion reporting and the customer recently modified conversion types that were relevant to the bid strategy.", + "The bid strategy depends on conversion reporting and the customer recently changed their conversion settings.", + "The bid strategy is limited by its bid ceiling.", + "The bid strategy is limited by its bid floor.", + "The bid strategy is limited because there was not enough conversion traffic over the past weeks.", + "A significant fraction of keywords in this bid strategy are limited by budget.", + "The bid strategy cannot reach its target spend because its spend has been de-prioritized.", + "A significant fraction of keywords in this bid strategy have a low Quality Score.", + "The bid strategy cannot fully spend its budget because of narrow targeting.", + "Missing conversion tracking (no pings present) and/or remarketing lists for SSC.", + "The bid strategy depends on conversion reporting and the customer is lacking conversion types that might be reported against this strategy.", + "The bid strategy depends on conversion reporting and the customer's conversion settings are misconfigured.", + "There are campaigns outside the bid strategy that share budgets with campaigns included in the strategy.", + "The campaign has an invalid strategy type and is not serving.", + "The bid strategy is not active. Either there are no active campaigns, ad groups or keywords attached to the bid strategy. Or there are no active budgets connected to the bid strategy.", + "This bid strategy currently does not support status reporting.", + "There were multiple LEARNING_* system statuses for this bid strategy during the time in question.", + "There were multiple LIMITED_* system statuses for this bid strategy during the time in question.", + "There were multiple MISCONFIGURED_* system statuses for this bid strategy during the time in question.", + "There were multiple system statuses for this bid strategy during the time in question." + ], + "readOnly": true, + "type": "string" + }, + "biddingStrategyType": { + "description": "Output only. The type of bidding strategy. A bidding strategy can be created by setting either the bidding scheme to create a standard bidding strategy or the `bidding_strategy` field to create a portfolio bidding strategy. This field is read-only.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "COMMISSION", + "ENHANCED_CPC", + "INVALID", + "MANUAL_CPA", + "MANUAL_CPC", + "MANUAL_CPM", + "MANUAL_CPV", + "MAXIMIZE_CONVERSIONS", + "MAXIMIZE_CONVERSION_VALUE", + "PAGE_ONE_PROMOTED", + "PERCENT_CPC", + "TARGET_CPA", + "TARGET_CPM", + "TARGET_IMPRESSION_SHARE", + "TARGET_OUTRANK_SHARE", + "TARGET_ROAS", + "TARGET_SPEND" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.", + "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.", + "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.", + "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.", + "Manual click based bidding where user pays per click.", + "Manual impression based bidding where user pays per thousand impressions.", + "A bidding strategy that pays a configurable amount per video view.", + "A bidding strategy that automatically maximizes number of conversions given a daily budget.", + "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.", + "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.", + "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.", + "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", + "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.", + "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).", + "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.", + "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).", + "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget." + ], + "readOnly": true, + "type": "string" + }, + "campaignBudget": { + "description": "The budget of the campaign.", + "type": "string" + }, + "createTime": { + "description": "Output only. Timestamp of the campaign's creation time, formatted in ISO 8601.", + "readOnly": true, + "type": "string" + }, + "dynamicSearchAdsSetting": { + "$ref": "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting", + "description": "The setting for controlling Dynamic Search Ads (DSA)." + }, + "endDate": { + "description": "The last day of the campaign in serving customer's timezone in YYYY-MM-DD format. On create, defaults to 2037-12-30, which means the campaign will run indefinitely. To set an existing campaign to run indefinitely, set this field to 2037-12-30.", + "type": "string" + }, + "engineId": { + "description": "Output only. ID of the campaign 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 \"campaign.id\" instead.", + "readOnly": true, + "type": "string" + }, + "excludedParentAssetFieldTypes": { + "description": "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.", + "items": { + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "HEADLINE", + "DESCRIPTION", + "MANDATORY_AD_TEXT", + "MARKETING_IMAGE", + "MEDIA_BUNDLE", + "YOUTUBE_VIDEO", + "BOOK_ON_GOOGLE", + "LEAD_FORM", + "PROMOTION", + "CALLOUT", + "STRUCTURED_SNIPPET", + "SITELINK", + "MOBILE_APP", + "HOTEL_CALLOUT", + "CALL", + "PRICE", + "LONG_HEADLINE", + "BUSINESS_NAME", + "SQUARE_MARKETING_IMAGE", + "PORTRAIT_MARKETING_IMAGE", + "LOGO", + "LANDSCAPE_LOGO", + "VIDEO", + "CALL_TO_ACTION_SELECTION", + "AD_IMAGE" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "The asset is linked for use as a headline.", + "The asset is linked for use as a description.", + "The asset is linked for use as mandatory ad text.", + "The asset is linked for use as a marketing image.", + "The asset is linked for use as a media bundle.", + "The asset is linked for use as a YouTube video.", + "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.", + "The asset is linked for use as a Lead Form extension.", + "The asset is linked for use as a Promotion extension.", + "The asset is linked for use as a Callout extension.", + "The asset is linked for use as a Structured Snippet extension.", + "The asset is linked for use as a Sitelink extension.", + "The asset is linked for use as a Mobile App extension.", + "The asset is linked for use as a Hotel Callout extension.", + "The asset is linked for use as a Call extension.", + "The asset is linked for use as a Price extension.", + "The asset is linked for use as a long headline.", + "The asset is linked for use as a business name.", + "The asset is linked for use as a square marketing image.", + "The asset is linked for use as a portrait marketing image.", + "The asset is linked for use as a logo.", + "The asset is linked for use as a landscape logo.", + "The asset is linked for use as a non YouTube logo.", + "The asset is linked for use to select a call-to-action.", + "The asset is linked for use to select an ad image." + ], + "type": "string" + }, + "type": "array" + }, + "finalUrlSuffix": { + "description": "Suffix used to append query parameters to landing pages that are served with parallel tracking.", + "type": "string" + }, + "frequencyCaps": { + "description": "A list that limits how often each user will see this campaign's ads.", + "items": { + "$ref": "GoogleAdsSearchads360V0Common__FrequencyCapEntry" + }, + "type": "array" + }, + "geoTargetTypeSetting": { + "$ref": "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting", + "description": "The setting for ads geotargeting." + }, + "id": { + "description": "Output only. The ID of the campaign.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "labels": { + "description": "Output only. The resource names of labels attached to this campaign.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "lastModifiedTime": { + "description": "Output only. The datetime when this campaign was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", + "readOnly": true, + "type": "string" + }, + "manualCpa": { + "$ref": "GoogleAdsSearchads360V0Common__ManualCpa", + "description": "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." + }, + "manualCpc": { + "$ref": "GoogleAdsSearchads360V0Common__ManualCpc", + "description": "Standard Manual CPC bidding strategy. Manual click-based bidding where user pays per click." + }, + "manualCpm": { + "$ref": "GoogleAdsSearchads360V0Common__ManualCpm", + "description": "Standard Manual CPM bidding strategy. Manual impression-based bidding where user pays per thousand impressions." + }, + "maximizeConversionValue": { + "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversionValue", + "description": "Standard Maximize Conversion Value bidding strategy that automatically sets bids to maximize revenue while spending your budget." + }, + "maximizeConversions": { + "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversions", + "description": "Standard Maximize Conversions bidding strategy that automatically maximizes number of conversions while spending your budget." + }, + "name": { + "description": "The name of the campaign. This field is required and should not be empty when creating new campaigns. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.", + "type": "string" + }, + "networkSettings": { + "$ref": "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings", + "description": "The network settings for the campaign." + }, + "optimizationGoalSetting": { + "$ref": "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting", + "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types." + }, + "percentCpc": { + "$ref": "GoogleAdsSearchads360V0Common__PercentCpc", + "description": "Standard Percent Cpc bidding strategy where bids are a fraction of the advertised price for some good or service." + }, + "realTimeBiddingSetting": { + "$ref": "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting", + "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network." + }, + "resourceName": { + "description": "Immutable. The resource name of the campaign. Campaign resource names have the form: `customers/{customer_id}/campaigns/{campaign_id}`", + "type": "string" + }, + "selectiveOptimization": { + "$ref": "GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization", + "description": "Selective optimization setting for this campaign, which includes a set of conversion actions to optimize this campaign towards." + }, + "servingStatus": { + "description": "Output only. The ad serving status of the campaign.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "SERVING", + "NONE", + "ENDED", + "PENDING", + "SUSPENDED" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "Serving.", + "None.", + "Ended.", + "Pending.", + "Suspended." + ], + "readOnly": true, + "type": "string" + }, + "shoppingSetting": { + "$ref": "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting", + "description": "The setting for controlling Shopping campaigns." + }, + "startDate": { + "description": "The date when campaign started in serving customer's timezone in YYYY-MM-DD format.", + "type": "string" + }, + "status": { + "description": "The status of the campaign. When a new campaign is added, the status defaults to ENABLED.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "PAUSED", + "REMOVED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Campaign is active and can show ads.", + "Campaign has been paused by the user.", + "Campaign has been removed." + ], + "type": "string" + }, + "targetCpa": { + "$ref": "GoogleAdsSearchads360V0Common__TargetCpa", + "description": "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." + }, + "targetCpm": { + "$ref": "GoogleAdsSearchads360V0Common__TargetCpm", + "description": "A bidding strategy that automatically optimizes cost per thousand impressions." + }, + "targetImpressionShare": { + "$ref": "GoogleAdsSearchads360V0Common__TargetImpressionShare", + "description": "Target Impression Share bidding strategy. An automated bidding strategy that sets bids to achieve a chosen percentage of impressions." + }, + "targetRoas": { + "$ref": "GoogleAdsSearchads360V0Common__TargetRoas", + "description": "Standard Target ROAS bidding strategy that automatically maximizes revenue while averaging a specific target return on ad spend (ROAS)." + }, + "targetSpend": { + "$ref": "GoogleAdsSearchads360V0Common__TargetSpend", + "description": "Standard Target Spend bidding strategy that automatically sets your bids to help get as many clicks as possible within your budget." + }, + "trackingSetting": { + "$ref": "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting", + "description": "Output only. Campaign-level settings for tracking information.", + "readOnly": true + }, + "trackingUrlTemplate": { + "description": "The URL template for constructing a tracking URL.", + "type": "string" + }, + "urlCustomParameters": { + "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.", + "items": { + "$ref": "GoogleAdsSearchads360V0Common__CustomParameter" + }, + "type": "array" + }, + "urlExpansionOptOut": { + "description": "Represents opting out of URL expansion to more targeted URLs. If opted out (true), only the final URLs in the asset group or URLs specified in the advertiser's Google Merchant Center or business data feeds are targeted. If opted in (false), the entire domain will be targeted. This field can only be set for Performance Max campaigns, where the default value is false.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__CampaignBudget": { + "description": "A campaign budget.", + "id": "GoogleAdsSearchads360V0Resources__CampaignBudget", + "properties": { + "amountMicros": { + "description": "The amount of the budget, in the local currency for the account. Amount is specified in micros, where one million is equivalent to one currency unit. Monthly spend is capped at 30.4 times this amount.", + "format": "int64", + "type": "string" + }, + "deliveryMethod": { + "description": "The delivery method that determines the rate at which the campaign budget is spent. Defaults to STANDARD if unspecified in a create operation.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "STANDARD", + "ACCELERATED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "The budget server will throttle serving evenly across the entire time period.", + "The budget server will not throttle serving, and ads will serve as fast as possible." + ], + "type": "string" + }, + "period": { + "description": "Immutable. Period over which to spend the budget. Defaults to DAILY if not specified.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DAILY", + "FIXED_DAILY", + "CUSTOM_PERIOD" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Daily budget.", + "Fixed daily budget.", + "Custom budget, added back in V5. Custom bugdet can be used with total_amount to specify lifetime budget limit." + ], + "type": "string" + }, + "resourceName": { + "description": "Immutable. The resource name of the campaign budget. Campaign budget resource names have the form: `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__CampaignCriterion": { + "description": "A campaign criterion.", + "id": "GoogleAdsSearchads360V0Resources__CampaignCriterion", + "properties": { + "bidModifier": { + "description": "The modifier for the bids when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. Use 0 to opt out of a Device type.", + "format": "float", + "type": "number" + }, + "criterionId": { + "description": "Output only. The ID of the criterion. This field is ignored during mutate.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "device": { + "$ref": "GoogleAdsSearchads360V0Common__DeviceInfo", + "description": "Immutable. Device." + }, + "displayName": { + "description": "Output only. The display name of the criterion. This field is ignored for mutates.", + "readOnly": true, + "type": "string" + }, + "language": { + "$ref": "GoogleAdsSearchads360V0Common__LanguageInfo", + "description": "Immutable. Language." + }, + "location": { + "$ref": "GoogleAdsSearchads360V0Common__LocationInfo", + "description": "Immutable. Location." + }, + "locationGroup": { + "$ref": "GoogleAdsSearchads360V0Common__LocationGroupInfo", + "description": "Immutable. Location Group" + }, + "negative": { + "description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion.", + "type": "boolean" + }, + "resourceName": { + "description": "Immutable. The resource name of the campaign criterion. Campaign criterion resource names have the form: `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`", + "type": "string" + }, + "type": { + "description": "Output only. The type of the criterion.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "KEYWORD", + "PLACEMENT", + "MOBILE_APP_CATEGORY", + "MOBILE_APPLICATION", + "DEVICE", + "LOCATION", + "LISTING_GROUP", + "AD_SCHEDULE", + "AGE_RANGE", + "GENDER", + "INCOME_RANGE", + "PARENTAL_STATUS", + "YOUTUBE_VIDEO", + "YOUTUBE_CHANNEL", + "USER_LIST", + "PROXIMITY", + "TOPIC", + "LISTING_SCOPE", + "LANGUAGE", + "IP_BLOCK", + "CONTENT_LABEL", + "CARRIER", + "USER_INTEREST", + "WEBPAGE", + "OPERATING_SYSTEM_VERSION", + "APP_PAYMENT_MODEL", + "MOBILE_DEVICE", + "CUSTOM_AFFINITY", + "CUSTOM_INTENT", + "LOCATION_GROUP", + "CUSTOM_AUDIENCE", + "COMBINED_AUDIENCE", + "KEYWORD_THEME", + "AUDIENCE", + "LOCAL_SERVICE_ID" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Keyword, for example, 'mars cruise'.", + "Placement, also known as Website, for example, 'www.flowers4sale.com'", + "Mobile application categories to target.", + "Mobile applications to target.", + "Devices to target.", + "Locations to target.", + "Listing groups to target.", + "Ad Schedule.", + "Age range.", + "Gender.", + "Income Range.", + "Parental status.", + "YouTube Video.", + "YouTube Channel.", + "User list.", + "Proximity.", + "A topic target on the display network (for example, \"Pets \u0026 Animals\").", + "Listing scope to target.", + "Language.", + "IpBlock.", + "Content Label for category exclusion.", + "Carrier.", + "A category the user is interested in.", + "Webpage criterion for dynamic search ads.", + "Operating system version.", + "App payment model.", + "Mobile device.", + "Custom affinity.", + "Custom intent.", + "Location group.", + "Custom audience", + "Combined audience", + "Smart Campaign keyword theme", + "Audience", + "Google Local Services (GLS) Service ID." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__ConversionAction": { + "description": "A conversion action.", + "id": "GoogleAdsSearchads360V0Resources__ConversionAction", + "properties": { + "appId": { + "description": "App ID for an app conversion action.", + "type": "string" + }, + "attributionModelSettings": { + "$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings", + "description": "Settings related to this conversion action's attribution model." + }, + "category": { + "description": "The category of conversions reported for this conversion action.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DEFAULT", + "PAGE_VIEW", + "PURCHASE", + "SIGNUP", + "LEAD", + "DOWNLOAD", + "ADD_TO_CART", + "BEGIN_CHECKOUT", + "SUBSCRIBE_PAID", + "PHONE_CALL_LEAD", + "IMPORTED_LEAD", + "SUBMIT_LEAD_FORM", + "BOOK_APPOINTMENT", + "REQUEST_QUOTE", + "GET_DIRECTIONS", + "OUTBOUND_CLICK", + "CONTACT", + "ENGAGEMENT", + "STORE_VISIT", + "STORE_SALE", + "QUALIFIED_LEAD", + "CONVERTED_LEAD" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Default category.", + "User visiting a page.", + "Purchase, sales, or \"order placed\" event.", + "Signup user action.", + "Lead-generating action.", + "Software download action (as for an app).", + "The addition of items to a shopping cart or bag on an advertiser site.", + "When someone enters the checkout flow on an advertiser site.", + "The start of a paid subscription for a product or service.", + "A call to indicate interest in an advertiser's offering.", + "A lead conversion imported from an external source into Google Ads.", + "A submission of a form on an advertiser site indicating business interest.", + "A booking of an appointment with an advertiser's business.", + "A quote or price estimate request.", + "A search for an advertiser's business location with intention to visit.", + "A click to an advertiser's partner's site.", + "A call, SMS, email, chat or other type of contact to an advertiser.", + "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.", + "A visit to a physical store location.", + "A sale occurring in a physical store.", + "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".", + "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser." + ], + "type": "string" + }, + "clickThroughLookbackWindowDays": { + "description": "The maximum number of days that may elapse between an interaction (for example, a click) and a conversion event.", + "format": "int64", + "type": "string" + }, + "creationTime": { + "description": "Output only. Timestamp of the Floodlight activity's creation, formatted in ISO 8601.", + "readOnly": true, + "type": "string" + }, + "floodlightSettings": { + "$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings", + "description": "Output only. Floodlight settings for Floodlight conversion types.", + "readOnly": true + }, + "id": { + "description": "Output only. The ID of the conversion action.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "includeInClientAccountConversionsMetric": { + "description": "Whether this conversion action should be included in the \"client_account_conversions\" metric.", + "type": "boolean" + }, + "includeInConversionsMetric": { + "description": "Output only. Whether this conversion action should be included in the \"conversions\" metric.", + "readOnly": true, + "type": "boolean" + }, + "name": { + "description": "The name of the conversion action. This field is required and should not be empty when creating new conversion actions.", + "type": "string" + }, + "ownerCustomer": { + "description": "Output only. The resource name of the conversion action owner customer, or null if this is a system-defined conversion action.", + "readOnly": true, + "type": "string" + }, + "primaryForGoal": { + "description": "If a conversion action's primary_for_goal bit is false, the conversion action is non-biddable for all campaigns regardless of their customer conversion goal or campaign conversion goal. However, custom conversion goals do not respect primary_for_goal, so if a campaign has a custom conversion goal configured with a primary_for_goal = false conversion action, that conversion action is still biddable. By default, primary_for_goal will be true if not set. In V9, primary_for_goal can only be set to false after creation through an 'update' operation because it's not declared as optional.", + "type": "boolean" + }, + "resourceName": { + "description": "Immutable. The resource name of the conversion action. Conversion action resource names have the form: `customers/{customer_id}/conversionActions/{conversion_action_id}`", + "type": "string" + }, + "status": { + "description": "The status of this conversion action for conversion event accrual.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "REMOVED", + "HIDDEN" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Conversions will be recorded.", + "Conversions will not be recorded.", + "Conversions will not be recorded and the conversion action will not appear in the UI." + ], + "type": "string" + }, + "type": { + "description": "Immutable. The type of this conversion action.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_CALL", + "CLICK_TO_CALL", + "GOOGLE_PLAY_DOWNLOAD", + "GOOGLE_PLAY_IN_APP_PURCHASE", + "UPLOAD_CALLS", + "UPLOAD_CLICKS", + "WEBPAGE", + "WEBSITE_CALL", + "STORE_SALES_DIRECT_UPLOAD", + "STORE_SALES", + "FIREBASE_ANDROID_FIRST_OPEN", + "FIREBASE_ANDROID_IN_APP_PURCHASE", + "FIREBASE_ANDROID_CUSTOM", + "FIREBASE_IOS_FIRST_OPEN", + "FIREBASE_IOS_IN_APP_PURCHASE", + "FIREBASE_IOS_CUSTOM", + "THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN", + "THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE", + "THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM", + "THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN", + "THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE", + "THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM", + "ANDROID_APP_PRE_REGISTRATION", + "ANDROID_INSTALLS_ALL_OTHER_APPS", + "FLOODLIGHT_ACTION", + "FLOODLIGHT_TRANSACTION", + "GOOGLE_HOSTED", + "LEAD_FORM_SUBMIT", + "SALESFORCE", + "SEARCH_ADS_360", + "SMART_CAMPAIGN_AD_CLICKS_TO_CALL", + "SMART_CAMPAIGN_MAP_CLICKS_TO_CALL", + "SMART_CAMPAIGN_MAP_DIRECTIONS", + "SMART_CAMPAIGN_TRACKED_CALLS", + "STORE_VISITS" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Conversions that occur when a user clicks on an ad's call extension.", + "Conversions that occur when a user on a mobile device clicks a phone number.", + "Conversions that occur when a user downloads a mobile app from the Google Play Store.", + "Conversions that occur when a user makes a purchase in an app through Android billing.", + "Call conversions that are tracked by the advertiser and uploaded.", + "Conversions that are tracked by the advertiser and uploaded with attributed clicks.", + "Conversions that occur on a webpage.", + "Conversions that occur when a user calls a dynamically-generated phone number from an advertiser's website.", + "Store Sales conversion based on first-party or third-party merchant data uploads. Only customers on the allowlist can use store sales direct upload types.", + "Store Sales conversion based on first-party or third-party merchant data uploads and/or from in-store purchases using cards from payment networks. Only customers on the allowlist can use store sales types. Read only.", + "Android app first open conversions tracked through Firebase.", + "Android app in app purchase conversions tracked through Firebase.", + "Android app custom conversions tracked through Firebase.", + "iOS app first open conversions tracked through Firebase.", + "iOS app in app purchase conversions tracked through Firebase.", + "iOS app custom conversions tracked through Firebase.", + "Android app first open conversions tracked through Third Party App Analytics.", + "Android app in app purchase conversions tracked through Third Party App Analytics.", + "Android app custom conversions tracked through Third Party App Analytics.", + "iOS app first open conversions tracked through Third Party App Analytics.", + "iOS app in app purchase conversions tracked through Third Party App Analytics.", + "iOS app custom conversions tracked through Third Party App Analytics.", + "Conversions that occur when a user pre-registers a mobile app from the Google Play Store. Read only.", + "Conversions that track all Google Play downloads which aren't tracked by an app-specific type. Read only.", + "Floodlight activity that counts the number of times that users have visited a particular webpage after seeing or clicking on one of an advertiser's ads. Read only.", + "Floodlight activity that tracks the number of sales made or the number of items purchased. Can also capture the total value of each sale. Read only.", + "Conversions that track local actions from Google's products and services after interacting with an ad. Read only.", + "Conversions reported when a user submits a lead form. Read only.", + "Conversions that come from Salesforce. Read only.", + "Conversions imported from Search Ads 360 Floodlight data. Read only.", + "Call conversions that occur on Smart campaign Ads without call tracking setup, using Smart campaign custom criteria. Read only.", + "The user clicks on a call element within Google Maps. Smart campaign only. Read only.", + "The user requests directions to a business location within Google Maps. Smart campaign only. Read only.", + "Call conversions that occur on Smart campaign Ads with call tracking setup, using Smart campaign custom criteria. Read only.", + "Conversions that occur when a user visits an advertiser's retail store. Read only." + ], + "type": "string" + }, + "valueSettings": { + "$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings", + "description": "Settings related to the value for conversion events associated with this conversion action." + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting": { + "description": "A collection of customer-wide settings related to Search Ads 360 Conversion Tracking.", + "id": "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting", + "properties": { + "acceptedCustomerDataTerms": { + "description": "Output only. Whether the customer has accepted customer data terms. If using cross-account conversion tracking, this value is inherited from the manager. This field is read-only. For more information, see https://support.google.com/adspolicy/answer/7475709.", + "readOnly": true, + "type": "boolean" + }, + "conversionTrackingId": { + "description": "Output only. The conversion tracking id used for this account. This id doesn't indicate whether the customer uses conversion tracking (conversion_tracking_status does). This field is read-only.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "conversionTrackingStatus": { + "description": "Output only. Conversion tracking status. It indicates whether the customer is using conversion tracking, and who is the conversion tracking owner of this customer. If this customer is using cross-account conversion tracking, the value returned will differ based on the `login-customer-id` of the request.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NOT_CONVERSION_TRACKED", + "CONVERSION_TRACKING_MANAGED_BY_SELF", + "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER", + "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Customer does not use any conversion tracking.", + "The conversion actions are created and managed by this customer.", + "The conversion actions are created and managed by the manager specified in the request's `login-customer-id`.", + "The conversion actions are created and managed by a manager different from the customer or manager specified in the request's `login-customer-id`." + ], + "readOnly": true, + "type": "string" + }, + "crossAccountConversionTrackingId": { + "description": "Output only. The conversion tracking id of the customer's manager. This is set when the customer is opted into cross-account conversion tracking, and it overrides conversion_tracking_id.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "enhancedConversionsForLeadsEnabled": { + "description": "Output only. Whether the customer is opted-in for enhanced conversions for leads. If using cross-account conversion tracking, this value is inherited from the manager. This field is read-only.", + "readOnly": true, + "type": "boolean" + }, + "googleAdsConversionCustomer": { + "description": "Output only. The resource name of the customer where conversions are created and managed. This field is read-only.", + "readOnly": true, + "type": "string" + }, + "googleAdsCrossAccountConversionTrackingId": { + "description": "Output only. The conversion tracking id of the customer's manager. This is set when the customer is opted into conversion tracking, and it overrides conversion_tracking_id. This field can only be managed through the Google Ads UI. This field is read-only.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__CustomColumn": { + "description": "A custom column. See Search Ads 360 custom column at https://support.google.com/sa360/answer/9633916", + "id": "GoogleAdsSearchads360V0Resources__CustomColumn", + "properties": { + "description": { + "description": "Output only. User-defined description of the custom column.", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. ID of the custom column.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. User-defined name of the custom column.", + "readOnly": true, + "type": "string" + }, + "queryable": { + "description": "Output only. True when the custom column is available to be used in the query of SearchAds360Service.Search and SearchAds360Service.SearchStream.", + "readOnly": true, + "type": "boolean" + }, + "referencedSystemColumns": { + "description": "Output only. The list of the referenced system columns of this custom column. For example, A custom column \"sum of impressions and clicks\" has referenced system columns of {\"metrics.clicks\", \"metrics.impressions\"}.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "referencesAttributes": { + "description": "Output only. True when the custom column is referring to one or more attributes.", + "readOnly": true, + "type": "boolean" + }, + "referencesMetrics": { + "description": "Output only. True when the custom column is referring to one or more metrics.", + "readOnly": true, + "type": "boolean" + }, + "resourceName": { + "description": "Immutable. The resource name of the custom column. Custom column resource names have the form: `customers/{customer_id}/customColumns/{custom_column_id}`", + "type": "string" + }, + "valueType": { + "description": "Output only. The type of the result value of the custom column.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "STRING", + "INT64", + "DOUBLE", + "BOOLEAN" + ], + "enumDescriptions": [ + "Not specified.", + "Unknown.", + "The custom column value is a string.", + "The custom column value is an int64 number.", + "The custom column value is a double number.", + "The custom column value is a boolean." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__Customer": { + "description": "A customer.", + "id": "GoogleAdsSearchads360V0Resources__Customer", + "properties": { + "accountStatus": { + "description": "Output only. Account status, for example, Enabled, Paused, Removed, etc.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "PAUSED", + "SUSPENDED", + "REMOVED", + "DRAFT" + ], + "enumDescriptions": [ + "Default value.", + "Unknown value.", + "Account is able to serve ads.", + "Account is deactivated by the user.", + "Account is deactivated by an internal process.", + "Account is irrevocably deactivated.", + "Account is still in the process of setup, not ENABLED yet." + ], + "readOnly": true, + "type": "string" + }, + "accountType": { + "description": "Output only. Engine account type, for example, Google Ads, Microsoft Advertising, Yahoo Japan, Baidu, Facebook, Engine Track, etc.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BAIDU", + "ENGINE_TRACK", + "FACEBOOK", + "FACEBOOK_GATEWAY", + "GOOGLE_ADS", + "MICROSOFT", + "SEARCH_ADS_360", + "YAHOO_JAPAN" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Baidu account.", + "Engine track account.", + "Facebook account.", + "Facebook account managed through gateway.", + "Google Ads account.", + "Microsoft Advertising account.", + "Search Ads 360 manager account.", + "Yahoo Japan account." + ], + "readOnly": true, + "type": "string" + }, + "autoTaggingEnabled": { + "description": "Whether auto-tagging is enabled for the customer.", + "type": "boolean" + }, + "conversionTrackingSetting": { + "$ref": "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting", + "description": "Output only. Conversion tracking setting for a customer.", + "readOnly": true + }, + "currencyCode": { + "description": "Immutable. The currency in which the account operates. A subset of the currency codes from the ISO 4217 standard is supported.", + "type": "string" + }, + "descriptiveName": { + "description": "Optional, non-unique descriptive name of the customer.", + "type": "string" + }, + "doubleClickCampaignManagerSetting": { + "$ref": "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting", + "description": "Output only. DoubleClick Campaign Manager (DCM) setting for a manager customer.", + "readOnly": true + }, + "engineId": { + "description": "Output only. ID of the account in the external engine account.", + "readOnly": true, + "type": "string" + }, + "finalUrlSuffix": { + "description": "The URL template for appending params to the final URL", + "type": "string" + }, + "id": { + "description": "Output only. The ID of the customer.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "lastModifiedTime": { + "description": "Output only. The datetime when this customer was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", + "readOnly": true, + "type": "string" + }, + "manager": { + "description": "Output only. Whether the customer is a manager.", + "readOnly": true, + "type": "boolean" + }, + "resourceName": { + "description": "Immutable. The resource name of the customer. Customer resource names have the form: `customers/{customer_id}`", + "type": "string" + }, + "status": { + "description": "Output only. The status of the customer.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "CANCELED", + "SUSPENDED", + "CLOSED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Indicates an active account able to serve ads.", + "Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.", + "Indicates a suspended account unable to serve ads. May only be activated by Google support.", + "Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened." + ], + "readOnly": true, + "type": "string" + }, + "timeZone": { + "description": "Immutable. The local timezone ID of the customer.", + "type": "string" + }, + "trackingUrlTemplate": { + "description": "The URL template for constructing a tracking URL out of parameters.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__CustomerClient": { + "description": "A link between the given customer and a client customer. CustomerClients only exist for manager customers. All direct and indirect client customers are included, as well as the manager itself.", + "id": "GoogleAdsSearchads360V0Resources__CustomerClient", + "properties": { + "appliedLabels": { + "description": "Output only. The resource names of the labels owned by the requesting customer that are applied to the client customer. Label resource names have the form: `customers/{customer_id}/labels/{label_id}`", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "clientCustomer": { + "description": "Output only. The resource name of the client-customer which is linked to the given customer. Read only.", + "readOnly": true, + "type": "string" + }, + "currencyCode": { + "description": "Output only. Currency code (for example, 'USD', 'EUR') for the client. Read only.", + "readOnly": true, + "type": "string" + }, + "descriptiveName": { + "description": "Output only. Descriptive name for the client. Read only.", + "readOnly": true, + "type": "string" + }, + "hidden": { + "description": "Output only. Specifies whether this is a hidden account. Read only.", + "readOnly": true, + "type": "boolean" + }, + "id": { + "description": "Output only. The ID of the client customer. Read only.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "level": { + "description": "Output only. Distance between given customer and client. For self link, the level value will be 0. Read only.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "manager": { + "description": "Output only. Identifies if the client is a manager. Read only.", + "readOnly": true, + "type": "boolean" + }, + "resourceName": { + "description": "Output only. The resource name of the customer client. CustomerClient resource names have the form: `customers/{customer_id}/customerClients/{client_customer_id}`", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. The status of the client customer. Read only.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENABLED", + "CANCELED", + "SUSPENDED", + "CLOSED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Indicates an active account able to serve ads.", + "Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.", + "Indicates a suspended account unable to serve ads. May only be activated by Google support.", + "Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened." + ], + "readOnly": true, + "type": "string" + }, + "testAccount": { + "description": "Output only. Identifies if the client is a test account. Read only.", + "readOnly": true, + "type": "boolean" + }, + "timeZone": { + "description": "Output only. Common Locale Data Repository (CLDR) string representation of the time zone of the client, for example, America/Los_Angeles. Read only.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__CustomerManagerLink": { + "description": "Represents customer-manager link relationship.", + "id": "GoogleAdsSearchads360V0Resources__CustomerManagerLink", + "properties": { + "managerCustomer": { + "description": "Output only. The manager customer linked to the customer.", + "readOnly": true, + "type": "string" + }, + "managerLinkId": { + "description": "Output only. ID of the customer-manager link. This field is read only.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "resourceName": { + "description": "Immutable. Name of the resource. CustomerManagerLink resource names have the form: `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`", + "type": "string" + }, + "status": { + "description": "Status of the link between the customer and the manager.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ACTIVE", + "INACTIVE", + "PENDING", + "REFUSED", + "CANCELED" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Indicates current in-effect relationship", + "Indicates terminated relationship", + "Indicates relationship has been requested by manager, but the client hasn't accepted yet.", + "Relationship was requested by the manager, but the client has refused.", + "Indicates relationship has been requested by manager, but manager canceled it." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting": { + "description": "DoubleClick Campaign Manager (DCM) setting for a manager customer.", + "id": "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting", + "properties": { + "advertiserId": { + "description": "Output only. ID of the Campaign Manager advertiser associated with this customer.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "networkId": { + "description": "Output only. ID of the Campaign Manager network associated with this customer.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "timeZone": { + "description": "Output only. Time zone of the Campaign Manager network associated with this customer in IANA Time Zone Database format, such as America/New_York.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__KeywordView": { + "description": "A keyword view.", + "id": "GoogleAdsSearchads360V0Resources__KeywordView", + "properties": { + "resourceName": { + "description": "Output only. The resource name of the keyword view. Keyword view resource names have the form: `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}`", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__ProductGroupView": { + "description": "A product group view.", + "id": "GoogleAdsSearchads360V0Resources__ProductGroupView", + "properties": { + "resourceName": { + "description": "Output only. The resource name of the product group view. Product group view resource names have the form: `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Resources__SearchAds360Field": { + "description": "A field or resource (artifact) used by SearchAds360Service.", + "id": "GoogleAdsSearchads360V0Resources__SearchAds360Field", + "properties": { + "attributeResources": { + "description": "Output only. The names of all resources that are selectable with the described artifact. Fields from these resources do not segment metrics when included in search queries. This field is only set for artifacts whose category is RESOURCE.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "category": { + "description": "Output only. The category of the artifact.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "RESOURCE", + "ATTRIBUTE", + "SEGMENT", + "METRIC" + ], + "enumDescriptions": [ + "Unspecified", + "Unknown", + "The described artifact is a resource.", + "The described artifact is a field and is an attribute of a resource. Including a resource attribute field in a query may segment the query if the resource to which it is attributed segments the resource found in the FROM clause.", + "The described artifact is a field and always segments search queries.", + "The described artifact is a field and is a metric. It never segments search queries." + ], + "readOnly": true, + "type": "string" + }, + "dataType": { + "description": "Output only. This field determines the operators that can be used with the artifact in WHERE clauses.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BOOLEAN", + "DATE", + "DOUBLE", + "ENUM", + "FLOAT", + "INT32", + "INT64", + "MESSAGE", + "RESOURCE_NAME", + "STRING", + "UINT64" + ], + "enumDescriptions": [ + "Unspecified", + "Unknown", + "Maps to google.protobuf.BoolValue Applicable operators: =, !=", + "Maps to google.protobuf.StringValue. It can be compared using the set of operators specific to dates however. Applicable operators: =, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, DURING, and IN", + "Maps to google.protobuf.DoubleValue Applicable operators: =, !=, \u003c, \u003e, IN, NOT IN", + "Maps to an enum. It's specific definition can be found at type_url. Applicable operators: =, !=, IN, NOT IN", + "Maps to google.protobuf.FloatValue Applicable operators: =, !=, \u003c, \u003e, IN, NOT IN", + "Maps to google.protobuf.Int32Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN", + "Maps to google.protobuf.Int64Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN", + "Maps to a protocol buffer message type. The data type's details can be found in type_url. No operators work with MESSAGE fields.", + "Maps to google.protobuf.StringValue. Represents the resource name (unique id) of a resource or one of its foreign keys. No operators work with RESOURCE_NAME fields.", + "Maps to google.protobuf.StringValue. Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN", + "Maps to google.protobuf.UInt64Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN" + ], + "readOnly": true, + "type": "string" + }, + "enumValues": { + "description": "Output only. Values the artifact can assume if it is a field of type ENUM. This field is only set for artifacts of category SEGMENT or ATTRIBUTE.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "filterable": { + "description": "Output only. Whether the artifact can be used in a WHERE clause in search queries.", + "readOnly": true, + "type": "boolean" + }, + "isRepeated": { + "description": "Output only. Whether the field artifact is repeated.", + "readOnly": true, + "type": "boolean" + }, + "metrics": { + "description": "Output only. This field lists the names of all metrics that are selectable with the described artifact when it is used in the FROM clause. It is only set for artifacts whose category is RESOURCE.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. The name of the artifact.", + "readOnly": true, + "type": "string" + }, + "resourceName": { + "description": "Output only. The resource name of the artifact. Artifact resource names have the form: `SearchAds360Fields/{name}`", + "readOnly": true, + "type": "string" + }, + "segments": { + "description": "Output only. This field lists the names of all artifacts, whether a segment or another resource, that segment metrics when included in search queries and when the described artifact is used in the FROM clause. It is only set for artifacts whose category is RESOURCE.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "selectable": { + "description": "Output only. Whether the artifact can be used in a SELECT clause in search queries.", + "readOnly": true, + "type": "boolean" + }, + "selectableWith": { + "description": "Output only. The names of all resources, segments, and metrics that are selectable with the described artifact.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "sortable": { + "description": "Output only. Whether the artifact can be used in a ORDER BY clause in search queries.", + "readOnly": true, + "type": "boolean" + }, + "typeUrl": { + "description": "Output only. The URL of proto describing the artifact's data type.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__CustomColumnHeader": { + "description": "Message for custom column header.", + "id": "GoogleAdsSearchads360V0Services__CustomColumnHeader", + "properties": { + "id": { + "description": "The custom column ID.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "The user defined name of the custom column.", + "type": "string" + }, + "referencesMetrics": { + "description": "True when the custom column references metrics.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse": { + "description": "Response message for fetching all custom columns associated with a customer.", + "id": "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse", + "properties": { + "customColumns": { + "description": "The CustomColumns owned by the provided customer.", + "items": { + "$ref": "GoogleAdsSearchads360V0Resources__CustomColumn" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__SearchAds360Row": { + "description": "A returned row from the query.", + "id": "GoogleAdsSearchads360V0Services__SearchAds360Row", + "properties": { + "adGroup": { + "$ref": "GoogleAdsSearchads360V0Resources__AdGroup", + "description": "The ad group referenced in the query." + }, + "adGroupBidModifier": { + "$ref": "GoogleAdsSearchads360V0Resources__AdGroupBidModifier", + "description": "The bid modifier referenced in the query." + }, + "adGroupCriterion": { + "$ref": "GoogleAdsSearchads360V0Resources__AdGroupCriterion", + "description": "The criterion referenced in the query." + }, + "biddingStrategy": { + "$ref": "GoogleAdsSearchads360V0Resources__BiddingStrategy", + "description": "The bidding strategy referenced in the query." + }, + "campaign": { + "$ref": "GoogleAdsSearchads360V0Resources__Campaign", + "description": "The campaign referenced in the query." + }, + "campaignBudget": { + "$ref": "GoogleAdsSearchads360V0Resources__CampaignBudget", + "description": "The campaign budget referenced in the query." + }, + "campaignCriterion": { + "$ref": "GoogleAdsSearchads360V0Resources__CampaignCriterion", + "description": "The campaign criterion referenced in the query." + }, + "conversionAction": { + "$ref": "GoogleAdsSearchads360V0Resources__ConversionAction", + "description": "The conversion action referenced in the query." + }, + "customColumns": { + "description": "The custom columns.", + "items": { + "$ref": "GoogleAdsSearchads360V0Common__Value" + }, + "type": "array" + }, + "customer": { + "$ref": "GoogleAdsSearchads360V0Resources__Customer", + "description": "The customer referenced in the query." + }, + "customerClient": { + "$ref": "GoogleAdsSearchads360V0Resources__CustomerClient", + "description": "The CustomerClient referenced in the query." + }, + "customerManagerLink": { + "$ref": "GoogleAdsSearchads360V0Resources__CustomerManagerLink", + "description": "The CustomerManagerLink referenced in the query." + }, + "keywordView": { + "$ref": "GoogleAdsSearchads360V0Resources__KeywordView", + "description": "The keyword view referenced in the query." + }, + "metrics": { + "$ref": "GoogleAdsSearchads360V0Common__Metrics", + "description": "The metrics." + }, + "productGroupView": { + "$ref": "GoogleAdsSearchads360V0Resources__ProductGroupView", + "description": "The product group view referenced in the query." + }, + "segments": { + "$ref": "GoogleAdsSearchads360V0Common__Segments", + "description": "The segments." + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest": { + "description": "Request message for SearchAds360FieldService.SearchSearchAds360Fields.", + "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest", + "properties": { + "pageSize": { + "description": "Number of elements to retrieve in a single page. When too large a page is requested, the server may decide to further limit the number of returned resources.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.", + "type": "string" + }, + "query": { + "description": "Required. The query string.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse": { + "description": "Response message for SearchAds360FieldService.SearchSearchAds360Fields.", + "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse", + "properties": { + "nextPageToken": { + "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.", + "type": "string" + }, + "results": { + "description": "The list of fields that matched the query.", + "items": { + "$ref": "GoogleAdsSearchads360V0Resources__SearchAds360Field" + }, + "type": "array" + }, + "totalResultsCount": { + "description": "Total number of results that match the query ignoring the LIMIT clause.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__SearchSearchAds360Request": { + "description": "Request message for SearchAds360Service.Search.", + "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360Request", + "properties": { + "pageSize": { + "description": "Number of elements to retrieve in a single page. When too large a page is requested, the server may decide to further limit the number of returned resources.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.", + "type": "string" + }, + "query": { + "description": "Required. The query string.", + "type": "string" + }, + "returnTotalResultsCount": { + "description": "If true, the total number of results that match the query ignoring the LIMIT clause will be included in the response. Default is false.", + "type": "boolean" + }, + "summaryRowSetting": { + "description": "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.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NO_SUMMARY_ROW", + "SUMMARY_ROW_WITH_RESULTS", + "SUMMARY_ROW_ONLY" + ], + "enumDescriptions": [ + "Not specified.", + "Represent unknown values of return summary row.", + "Do not return summary row.", + "Return summary row along with results. The summary row will be returned in the last batch alone (last batch will contain no results).", + "Return summary row only and return no results." + ], + "type": "string" + }, + "validateOnly": { + "description": "If true, the request is validated but not executed.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__SearchSearchAds360Response": { + "description": "Response message for SearchAds360Service.Search.", + "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360Response", + "properties": { + "customColumnHeaders": { + "description": "The headers of the custom columns in the results.", + "items": { + "$ref": "GoogleAdsSearchads360V0Services__CustomColumnHeader" + }, + "type": "array" + }, + "fieldMask": { + "description": "FieldMask that represents what fields were requested by the user.", + "format": "google-fieldmask", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.", + "type": "string" + }, + "results": { + "description": "The list of rows that matched the query.", + "items": { + "$ref": "GoogleAdsSearchads360V0Services__SearchAds360Row" + }, + "type": "array" + }, + "summaryRow": { + "$ref": "GoogleAdsSearchads360V0Services__SearchAds360Row", + "description": "Summary row that contains summary of metrics in results. Summary of metrics means aggregation of metrics across all results, here aggregation could be sum, average, rate, etc." + }, + "totalResultsCount": { + "description": "Total number of results that match the query ignoring the LIMIT clause.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest": { + "description": "Request message for SearchAds360Service.SearchStream.", + "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest", + "properties": { + "batchSize": { + "description": "The number of rows that are returned in each stream response batch. When too large batch is requested, the server may decide to further limit the number of returned rows.", + "format": "int32", + "type": "integer" + }, + "query": { + "description": "Required. The query string.", + "type": "string" + }, + "summaryRowSetting": { + "description": "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.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NO_SUMMARY_ROW", + "SUMMARY_ROW_WITH_RESULTS", + "SUMMARY_ROW_ONLY" + ], + "enumDescriptions": [ + "Not specified.", + "Represent unknown values of return summary row.", + "Do not return summary row.", + "Return summary row along with results. The summary row will be returned in the last batch alone (last batch will contain no results).", + "Return summary row only and return no results." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse": { + "description": "Response message for SearchAds360Service.SearchStream.", + "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse", + "properties": { + "customColumnHeaders": { + "description": "The headers of the custom columns in the results.", + "items": { + "$ref": "GoogleAdsSearchads360V0Services__CustomColumnHeader" + }, + "type": "array" + }, + "fieldMask": { + "description": "FieldMask that represents what fields were requested by the user.", + "format": "google-fieldmask", + "type": "string" + }, + "requestId": { + "description": "The unique id of the request that is used for debugging purposes.", + "type": "string" + }, + "results": { + "description": "The list of rows that matched the query.", + "items": { + "$ref": "GoogleAdsSearchads360V0Services__SearchAds360Row" + }, + "type": "array" + }, + "summaryRow": { + "$ref": "GoogleAdsSearchads360V0Services__SearchAds360Row", + "description": "Summary row that contains summary of metrics in results. Summary of metrics means aggregation of metrics across all results, here aggregation could be sum, average, rate, etc." + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Search Ads 360 Reporting API", + "version": "v0", + "version_module": true +} \ No newline at end of file diff --git a/searchads360/v0/searchads360-gen.go b/searchads360/v0/searchads360-gen.go new file mode 100644 index 00000000000..1c7389fdc9f --- /dev/null +++ b/searchads360/v0/searchads360-gen.go @@ -0,0 +1,6351 @@ +// Copyright 2023 Google LLC. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated file. DO NOT EDIT. + +// Package searchads360 provides access to the Search Ads 360 Reporting API. +// +// For product documentation, see: https://developers.google.com/search-ads/reporting +// +// # Creating a client +// +// Usage example: +// +// import "google.golang.org/api/searchads360/v0" +// ... +// ctx := context.Background() +// searchads360Service, err := searchads360.NewService(ctx) +// +// In this example, Google Application Default Credentials are used for authentication. +// +// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. +// +// # Other authentication options +// +// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: +// +// searchads360Service, err := searchads360.NewService(ctx, option.WithAPIKey("AIza...")) +// +// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: +// +// config := &oauth2.Config{...} +// // ... +// token, err := config.Exchange(ctx, ...) +// searchads360Service, err := searchads360.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) +// +// See https://godoc.org/google.golang.org/api/option/ for details on options. +package searchads360 // import "google.golang.org/api/searchads360/v0" + +import ( + "bytes" + "context" + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "strconv" + "strings" + + googleapi "google.golang.org/api/googleapi" + internal "google.golang.org/api/internal" + gensupport "google.golang.org/api/internal/gensupport" + option "google.golang.org/api/option" + internaloption "google.golang.org/api/option/internaloption" + htransport "google.golang.org/api/transport/http" +) + +// Always reference these packages, just in case the auto-generated code +// below doesn't. +var _ = bytes.NewBuffer +var _ = strconv.Itoa +var _ = fmt.Sprintf +var _ = json.NewDecoder +var _ = io.Copy +var _ = url.Parse +var _ = gensupport.MarshalJSON +var _ = googleapi.Version +var _ = errors.New +var _ = strings.Replace +var _ = context.Canceled +var _ = internaloption.WithDefaultEndpoint + +const apiId = "searchads360:v0" +const apiName = "searchads360" +const apiVersion = "v0" +const basePath = "https://searchads360.googleapis.com/" +const mtlsBasePath = "https://searchads360.mtls.googleapis.com/" + +// OAuth2 scopes used by this API. +const ( + // View and manage your advertising data in DoubleClick Search + DoubleclicksearchScope = "https://www.googleapis.com/auth/doubleclicksearch" +) + +// NewService creates a new Service. +func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { + scopesOption := internaloption.WithDefaultScopes( + "https://www.googleapis.com/auth/doubleclicksearch", + ) + // NOTE: prepend, so we don't override user-specified scopes. + opts = append([]option.ClientOption{scopesOption}, opts...) + opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) + opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) + client, endpoint, err := htransport.NewClient(ctx, opts...) + if err != nil { + return nil, err + } + s, err := New(client) + if err != nil { + return nil, err + } + if endpoint != "" { + s.BasePath = endpoint + } + return s, nil +} + +// New creates a new Service. It uses the provided http.Client for requests. +// +// Deprecated: please use NewService instead. +// To provide a custom HTTP client, use option.WithHTTPClient. +// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. +func New(client *http.Client) (*Service, error) { + if client == nil { + return nil, errors.New("client is nil") + } + s := &Service{client: client, BasePath: basePath} + s.Customers = NewCustomersService(s) + s.SearchAds360Fields = NewSearchAds360FieldsService(s) + return s, nil +} + +type Service struct { + client *http.Client + BasePath string // API endpoint base URL + UserAgent string // optional additional User-Agent fragment + + Customers *CustomersService + + SearchAds360Fields *SearchAds360FieldsService +} + +func (s *Service) userAgent() string { + if s.UserAgent == "" { + return googleapi.UserAgent + } + return googleapi.UserAgent + " " + s.UserAgent +} + +func NewCustomersService(s *Service) *CustomersService { + rs := &CustomersService{s: s} + rs.CustomColumns = NewCustomersCustomColumnsService(s) + rs.SearchAds360 = NewCustomersSearchAds360Service(s) + return rs +} + +type CustomersService struct { + s *Service + + CustomColumns *CustomersCustomColumnsService + + SearchAds360 *CustomersSearchAds360Service +} + +func NewCustomersCustomColumnsService(s *Service) *CustomersCustomColumnsService { + rs := &CustomersCustomColumnsService{s: s} + return rs +} + +type CustomersCustomColumnsService struct { + s *Service +} + +func NewCustomersSearchAds360Service(s *Service) *CustomersSearchAds360Service { + rs := &CustomersSearchAds360Service{s: s} + return rs +} + +type CustomersSearchAds360Service struct { + s *Service +} + +func NewSearchAds360FieldsService(s *Service) *SearchAds360FieldsService { + rs := &SearchAds360FieldsService{s: s} + return rs +} + +type SearchAds360FieldsService struct { + s *Service +} + +// GoogleAdsSearchads360V0Common__AgeRangeInfo: An age range criterion. +type GoogleAdsSearchads360V0Common__AgeRangeInfo struct { + // Type: Type of the age range. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "AGE_RANGE_18_24" - Between 18 and 24 years old. + // "AGE_RANGE_25_34" - Between 25 and 34 years old. + // "AGE_RANGE_35_44" - Between 35 and 44 years old. + // "AGE_RANGE_45_54" - Between 45 and 54 years old. + // "AGE_RANGE_55_64" - Between 55 and 64 years old. + // "AGE_RANGE_65_UP" - 65 years old and beyond. + // "AGE_RANGE_UNDETERMINED" - Undetermined age range. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Type") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Type") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__AgeRangeInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__AgeRangeInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__CustomParameter: A mapping that can be +// used by custom parameter tags in a `tracking_url_template`, +// `final_urls`, or `mobile_final_urls`. +type GoogleAdsSearchads360V0Common__CustomParameter struct { + // Key: The key matching the parameter tag name. + Key string `json:"key,omitempty"` + + // Value: The value to be substituted. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__CustomParameter) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__CustomParameter + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__DeviceInfo: A device criterion. +type GoogleAdsSearchads360V0Common__DeviceInfo struct { + // Type: Type of the device. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - The value is unknown in this version. + // "MOBILE" - Mobile devices with full browsers. + // "TABLET" - Tablets with full browsers. + // "DESKTOP" - Computers. + // "CONNECTED_TV" - Smart TVs and game consoles. + // "OTHER" - Other device types. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Type") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Type") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__DeviceInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__DeviceInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__EnhancedCpc: An automated bidding +// strategy that raises bids for clicks that seem more likely to lead to +// a conversion and lowers them for clicks where they seem less likely. +// This bidding strategy is deprecated and cannot be created anymore. +// Use ManualCpc with enhanced_cpc_enabled set to true for equivalent +// functionality. +type GoogleAdsSearchads360V0Common__EnhancedCpc struct { +} + +// GoogleAdsSearchads360V0Common__FrequencyCapEntry: A rule specifying +// the maximum number of times an ad (or some set of ads) can be shown +// to a user over a particular time period. +type GoogleAdsSearchads360V0Common__FrequencyCapEntry struct { +} + +// GoogleAdsSearchads360V0Common__GenderInfo: A gender criterion. +type GoogleAdsSearchads360V0Common__GenderInfo struct { + // Type: Type of the gender. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "MALE" - Male. + // "FEMALE" - Female. + // "UNDETERMINED" - Undetermined gender. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Type") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Type") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__GenderInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__GenderInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__KeywordInfo: A keyword criterion. +type GoogleAdsSearchads360V0Common__KeywordInfo struct { + // MatchType: The match type of the keyword. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "EXACT" - Exact match. + // "PHRASE" - Phrase match. + // "BROAD" - Broad match. + MatchType string `json:"matchType,omitempty"` + + // Text: The text of the keyword (at most 80 characters and 10 words). + Text string `json:"text,omitempty"` + + // ForceSendFields is a list of field names (e.g. "MatchType") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "MatchType") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__KeywordInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__KeywordInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__LanguageInfo: A language criterion. +type GoogleAdsSearchads360V0Common__LanguageInfo struct { + // LanguageConstant: The language constant resource name. + LanguageConstant string `json:"languageConstant,omitempty"` + + // ForceSendFields is a list of field names (e.g. "LanguageConstant") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "LanguageConstant") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__LanguageInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__LanguageInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__ListingGroupInfo: A listing group +// criterion. +type GoogleAdsSearchads360V0Common__ListingGroupInfo struct { + // Type: Type of the listing group. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "SUBDIVISION" - Subdivision of products along some listing + // dimension. These nodes are not used by serving to target listing + // entries, but is purely to define the structure of the tree. + // "UNIT" - Listing group unit that defines a bid. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Type") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Type") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__ListingGroupInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__ListingGroupInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__LocationGroupInfo: A radius around a +// list of locations specified through a feed. +type GoogleAdsSearchads360V0Common__LocationGroupInfo struct { + // FeedItemSets: FeedItemSets whose FeedItems are targeted. If multiple + // IDs are specified, then all items that appear in at least one set are + // targeted. This field cannot be used with geo_target_constants. This + // is optional and can only be set in CREATE operations. + FeedItemSets []string `json:"feedItemSets,omitempty"` + + // GeoTargetConstants: Geo target constant(s) restricting the scope of + // the geographic area within the feed. Currently only one geo target + // constant is allowed. + GeoTargetConstants []string `json:"geoTargetConstants,omitempty"` + + // Radius: Distance in units specifying the radius around targeted + // locations. This is required and must be set in CREATE operations. + Radius int64 `json:"radius,omitempty,string"` + + // RadiusUnits: Unit of the radius. Miles and meters are supported for + // geo target constants. Milli miles and meters are supported for feed + // item sets. This is required and must be set in CREATE operations. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "METERS" - Meters + // "MILES" - Miles + // "MILLI_MILES" - Milli Miles + RadiusUnits string `json:"radiusUnits,omitempty"` + + // ForceSendFields is a list of field names (e.g. "FeedItemSets") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FeedItemSets") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__LocationGroupInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__LocationGroupInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__LocationInfo: A location criterion. +type GoogleAdsSearchads360V0Common__LocationInfo struct { + // GeoTargetConstant: The geo target constant resource name. + GeoTargetConstant string `json:"geoTargetConstant,omitempty"` + + // ForceSendFields is a list of field names (e.g. "GeoTargetConstant") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "GeoTargetConstant") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__LocationInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__LocationInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__ManualCpa: Manual bidding strategy +// that allows advertiser to set the bid per advertiser-specified +// action. +type GoogleAdsSearchads360V0Common__ManualCpa struct { +} + +// GoogleAdsSearchads360V0Common__ManualCpc: Manual click-based bidding +// where user pays per click. +type GoogleAdsSearchads360V0Common__ManualCpc struct { + // EnhancedCpcEnabled: Whether bids are to be enhanced based on + // conversion optimizer data. + EnhancedCpcEnabled bool `json:"enhancedCpcEnabled,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EnhancedCpcEnabled") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EnhancedCpcEnabled") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__ManualCpc) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__ManualCpc + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__ManualCpm: Manual impression-based +// bidding where user pays per thousand impressions. +type GoogleAdsSearchads360V0Common__ManualCpm struct { +} + +// GoogleAdsSearchads360V0Common__MaximizeConversionValue: An automated +// bidding strategy to help get the most conversion value for your +// campaigns while spending your budget. +type GoogleAdsSearchads360V0Common__MaximizeConversionValue struct { + // CpcBidCeilingMicros: Maximum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // CpcBidFloorMicros: Minimum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"` + + // TargetRoas: The target return on ad spend (ROAS) option. If set, the + // bid strategy will maximize revenue while averaging the target return + // on ad spend. If the target ROAS is high, the bid strategy may not be + // able to spend the full budget. If the target ROAS is not set, the bid + // strategy will aim to achieve the highest possible ROAS for the + // budget. + TargetRoas float64 `json:"targetRoas,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__MaximizeConversionValue) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__MaximizeConversionValue + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Common__MaximizeConversionValue) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Common__MaximizeConversionValue + var s1 struct { + TargetRoas gensupport.JSONFloat64 `json:"targetRoas"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.TargetRoas = float64(s1.TargetRoas) + return nil +} + +// GoogleAdsSearchads360V0Common__MaximizeConversions: An automated +// bidding strategy to help get the most conversions for your campaigns +// while spending your budget. +type GoogleAdsSearchads360V0Common__MaximizeConversions struct { + // CpcBidCeilingMicros: Maximum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // CpcBidFloorMicros: Minimum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // Mutable for portfolio bidding strategies only. + CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"` + + // TargetCpaMicros: The target cost-per-action (CPA) option. This is the + // average amount that you would like to spend per conversion action + // specified in micro units of the bidding strategy's currency. If set, + // the bid strategy will get as many conversions as possible at or below + // the target cost-per-action. If the target CPA is not set, the bid + // strategy will aim to achieve the lowest possible CPA given the + // budget. + TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__MaximizeConversions) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__MaximizeConversions + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__Metrics: Metrics data. +type GoogleAdsSearchads360V0Common__Metrics struct { + // AbsoluteTopImpressionPercentage: The percent of your ad impressions + // that are shown as the very first ad above the organic search results. + AbsoluteTopImpressionPercentage float64 `json:"absoluteTopImpressionPercentage,omitempty"` + + // AllConversions: The total number of conversions. This includes all + // conversions regardless of the value of include_in_conversions_metric. + AllConversions float64 `json:"allConversions,omitempty"` + + // AllConversionsByConversionDate: The total number of conversions. This + // includes all conversions regardless of the value of + // include_in_conversions_metric. When this column is selected with + // date, the values in date column means the conversion date. Details + // for the by_conversion_date columns are available at + // https://support.google.com/sa360/answer/9250611. + AllConversionsByConversionDate float64 `json:"allConversionsByConversionDate,omitempty"` + + // AllConversionsFromClickToCall: The number of times people clicked the + // "Call" button to call a store during or after clicking an ad. This + // number doesn't include whether or not calls were connected, or the + // duration of any calls. This metric applies to feed items only. + AllConversionsFromClickToCall float64 `json:"allConversionsFromClickToCall,omitempty"` + + // AllConversionsFromDirections: The number of times people clicked a + // "Get directions" button to navigate to a store after clicking an ad. + // This metric applies to feed items only. + AllConversionsFromDirections float64 `json:"allConversionsFromDirections,omitempty"` + + // AllConversionsFromInteractionsRate: All conversions from interactions + // (as oppose to view through conversions) divided by the number of ad + // interactions. + AllConversionsFromInteractionsRate float64 `json:"allConversionsFromInteractionsRate,omitempty"` + + // AllConversionsFromInteractionsValuePerInteraction: The value of all + // conversions from interactions divided by the total number of + // interactions. + AllConversionsFromInteractionsValuePerInteraction float64 `json:"allConversionsFromInteractionsValuePerInteraction,omitempty"` + + // AllConversionsFromMenu: The number of times people clicked a link to + // view a store's menu after clicking an ad. This metric applies to feed + // items only. + AllConversionsFromMenu float64 `json:"allConversionsFromMenu,omitempty"` + + // AllConversionsFromOrder: The number of times people placed an order + // at a store after clicking an ad. This metric applies to feed items + // only. + AllConversionsFromOrder float64 `json:"allConversionsFromOrder,omitempty"` + + // AllConversionsFromOtherEngagement: The number of other conversions + // (for example, posting a review or saving a location for a store) that + // occurred after people clicked an ad. This metric applies to feed + // items only. + AllConversionsFromOtherEngagement float64 `json:"allConversionsFromOtherEngagement,omitempty"` + + // AllConversionsFromStoreVisit: Estimated number of times people + // visited a store after clicking an ad. This metric applies to feed + // items only. + AllConversionsFromStoreVisit float64 `json:"allConversionsFromStoreVisit,omitempty"` + + // AllConversionsFromStoreWebsite: The number of times that people were + // taken to a store's URL after clicking an ad. This metric applies to + // feed items only. + AllConversionsFromStoreWebsite float64 `json:"allConversionsFromStoreWebsite,omitempty"` + + // AllConversionsValue: The value of all conversions. + AllConversionsValue float64 `json:"allConversionsValue,omitempty"` + + // AllConversionsValueByConversionDate: The value of all conversions. + // When this column is selected with date, the values in date column + // means the conversion date. Details for the by_conversion_date columns + // are available at https://support.google.com/sa360/answer/9250611. + AllConversionsValueByConversionDate float64 `json:"allConversionsValueByConversionDate,omitempty"` + + // AllConversionsValuePerCost: The value of all conversions divided by + // the total cost of ad interactions (such as clicks for text ads or + // views for video ads). + AllConversionsValuePerCost float64 `json:"allConversionsValuePerCost,omitempty"` + + // AverageCost: The average amount you pay per interaction. This amount + // is the total cost of your ads divided by the total number of + // interactions. + AverageCost float64 `json:"averageCost,omitempty"` + + // AverageCpc: The total cost of all clicks divided by the total number + // of clicks received. + AverageCpc float64 `json:"averageCpc,omitempty"` + + // AverageCpm: Average cost-per-thousand impressions (CPM). + AverageCpm float64 `json:"averageCpm,omitempty"` + + // Clicks: The number of clicks. + Clicks int64 `json:"clicks,omitempty,string"` + + // ClientAccountConversions: The number of client account conversions. + // This only includes conversion actions which + // include_in_client_account_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + ClientAccountConversions float64 `json:"clientAccountConversions,omitempty"` + + // ClientAccountConversionsValue: The value of client account + // conversions. This only includes conversion actions which + // include_in_client_account_conversions_metric attribute is set to + // true. If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + ClientAccountConversionsValue float64 `json:"clientAccountConversionsValue,omitempty"` + + // ClientAccountViewThroughConversions: The total number of view-through + // conversions. These happen when a customer sees an image or rich media + // ad, then later completes a conversion on your site without + // interacting with (for example, clicking on) another ad. + ClientAccountViewThroughConversions int64 `json:"clientAccountViewThroughConversions,omitempty,string"` + + // ContentBudgetLostImpressionShare: The estimated percent of times that + // your ad was eligible to show on the Display Network but didn't + // because your budget was too low. Note: Content budget lost impression + // share is reported in the range of 0 to 0.9. Any value above 0.9 is + // reported as 0.9001. + ContentBudgetLostImpressionShare float64 `json:"contentBudgetLostImpressionShare,omitempty"` + + // ContentImpressionShare: The impressions you've received on the + // Display Network divided by the estimated number of impressions you + // were eligible to receive. Note: Content impression share is reported + // in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + ContentImpressionShare float64 `json:"contentImpressionShare,omitempty"` + + // ContentRankLostImpressionShare: The estimated percentage of + // impressions on the Display Network that your ads didn't receive due + // to poor Ad Rank. Note: Content rank lost impression share is reported + // in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. + ContentRankLostImpressionShare float64 `json:"contentRankLostImpressionShare,omitempty"` + + // Conversions: The number of conversions. This only includes conversion + // actions which include_in_conversions_metric attribute is set to true. + // If you use conversion-based bidding, your bid strategies will + // optimize for these conversions. + Conversions float64 `json:"conversions,omitempty"` + + // ConversionsByConversionDate: The sum of conversions by conversion + // date for biddable conversion types. Can be fractional due to + // attribution modeling. When this column is selected with date, the + // values in date column means the conversion date. + ConversionsByConversionDate float64 `json:"conversionsByConversionDate,omitempty"` + + // ConversionsFromInteractionsRate: Average biddable conversions (from + // interaction) per conversion eligible interaction. Shows how often, on + // average, an ad interaction leads to a biddable conversion. + ConversionsFromInteractionsRate float64 `json:"conversionsFromInteractionsRate,omitempty"` + + // ConversionsFromInteractionsValuePerInteraction: The value of + // conversions from interactions divided by the number of ad + // interactions. This only includes conversion actions which + // include_in_conversions_metric attribute is set to true. If you use + // conversion-based bidding, your bid strategies will optimize for these + // conversions. + ConversionsFromInteractionsValuePerInteraction float64 `json:"conversionsFromInteractionsValuePerInteraction,omitempty"` + + // ConversionsValue: The sum of conversion values for the conversions + // included in the "conversions" field. This metric is useful only if + // you entered a value for your conversion actions. + ConversionsValue float64 `json:"conversionsValue,omitempty"` + + // ConversionsValueByConversionDate: The sum of biddable conversions + // value by conversion date. When this column is selected with date, the + // values in date column means the conversion date. + ConversionsValueByConversionDate float64 `json:"conversionsValueByConversionDate,omitempty"` + + // ConversionsValuePerCost: The value of biddable conversion divided by + // the total cost of conversion eligible interactions. + ConversionsValuePerCost float64 `json:"conversionsValuePerCost,omitempty"` + + // CostMicros: The sum of your cost-per-click (CPC) and + // cost-per-thousand impressions (CPM) costs during this period. + CostMicros int64 `json:"costMicros,omitempty,string"` + + // CostPerAllConversions: The cost of ad interactions divided by all + // conversions. + CostPerAllConversions float64 `json:"costPerAllConversions,omitempty"` + + // CostPerConversion: Average conversion eligible cost per biddable + // conversion. + CostPerConversion float64 `json:"costPerConversion,omitempty"` + + // CostPerCurrentModelAttributedConversion: The cost of ad interactions + // divided by current model attributed conversions. This only includes + // conversion actions which include_in_conversions_metric attribute is + // set to true. If you use conversion-based bidding, your bid strategies + // will optimize for these conversions. + CostPerCurrentModelAttributedConversion float64 `json:"costPerCurrentModelAttributedConversion,omitempty"` + + // CrossDeviceConversions: Conversions from when a customer clicks on an + // ad on one device, then converts on a different device or browser. + // Cross-device conversions are already included in all_conversions. + CrossDeviceConversions float64 `json:"crossDeviceConversions,omitempty"` + + // CrossDeviceConversionsValue: The sum of the value of cross-device + // conversions. + CrossDeviceConversionsValue float64 `json:"crossDeviceConversionsValue,omitempty"` + + // Ctr: The number of clicks your ad receives (Clicks) divided by the + // number of times your ad is shown (Impressions). + Ctr float64 `json:"ctr,omitempty"` + + // HistoricalCreativeQualityScore: The creative historical quality + // score. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "BELOW_AVERAGE" - Quality of the creative is below average. + // "AVERAGE" - Quality of the creative is average. + // "ABOVE_AVERAGE" - Quality of the creative is above average. + HistoricalCreativeQualityScore string `json:"historicalCreativeQualityScore,omitempty"` + + // HistoricalLandingPageQualityScore: The quality of historical landing + // page experience. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "BELOW_AVERAGE" - Quality of the creative is below average. + // "AVERAGE" - Quality of the creative is average. + // "ABOVE_AVERAGE" - Quality of the creative is above average. + HistoricalLandingPageQualityScore string `json:"historicalLandingPageQualityScore,omitempty"` + + // HistoricalQualityScore: The historical quality score. + HistoricalQualityScore int64 `json:"historicalQualityScore,omitempty,string"` + + // HistoricalSearchPredictedCtr: The historical search predicted click + // through rate (CTR). + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "BELOW_AVERAGE" - Quality of the creative is below average. + // "AVERAGE" - Quality of the creative is average. + // "ABOVE_AVERAGE" - Quality of the creative is above average. + HistoricalSearchPredictedCtr string `json:"historicalSearchPredictedCtr,omitempty"` + + // Impressions: Count of how often your ad has appeared on a search + // results page or website on the Google Network. + Impressions int64 `json:"impressions,omitempty,string"` + + // InteractionEventTypes: The types of payable and free interactions. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "CLICK" - Click to site. In most cases, this interaction navigates + // to an external location, usually the advertiser's landing page. This + // is also the default InteractionEventType for click events. + // "ENGAGEMENT" - The user's expressed intent to engage with the ad + // in-place. + // "VIDEO_VIEW" - User viewed a video ad. + // "NONE" - The default InteractionEventType for ad conversion events. + // This is used when an ad conversion row does NOT indicate that the + // free interactions (for example, the ad conversions) should be + // 'promoted' and reported as part of the core metrics. These are simply + // other (ad) conversions. + InteractionEventTypes []string `json:"interactionEventTypes,omitempty"` + + // InteractionRate: How often people interact with your ad after it is + // shown to them. This is the number of interactions divided by the + // number of times your ad is shown. + InteractionRate float64 `json:"interactionRate,omitempty"` + + // Interactions: The number of interactions. An interaction is the main + // user action associated with an ad format-clicks for text and shopping + // ads, views for video ads, and so on. + Interactions int64 `json:"interactions,omitempty,string"` + + // InvalidClickRate: The percentage of clicks filtered out of your total + // number of clicks (filtered + non-filtered clicks) during the + // reporting period. + InvalidClickRate float64 `json:"invalidClickRate,omitempty"` + + // InvalidClicks: Number of clicks Google considers illegitimate and + // doesn't charge you for. + InvalidClicks int64 `json:"invalidClicks,omitempty,string"` + + // MobileFriendlyClicksPercentage: The percentage of mobile clicks that + // go to a mobile-friendly page. + MobileFriendlyClicksPercentage float64 `json:"mobileFriendlyClicksPercentage,omitempty"` + + // SearchAbsoluteTopImpressionShare: The percentage of the customer's + // Shopping or Search ad impressions that are shown in the most + // prominent Shopping position. See + // https://support.google.com/sa360/answer/9566729 for details. Any + // value below 0.1 is reported as 0.0999. + SearchAbsoluteTopImpressionShare float64 `json:"searchAbsoluteTopImpressionShare,omitempty"` + + // SearchBudgetLostAbsoluteTopImpressionShare: The number estimating how + // often your ad wasn't the very first ad above the organic search + // results due to a low budget. Note: Search budget lost absolute top + // impression share is reported in the range of 0 to 0.9. Any value + // above 0.9 is reported as 0.9001. + SearchBudgetLostAbsoluteTopImpressionShare float64 `json:"searchBudgetLostAbsoluteTopImpressionShare,omitempty"` + + // SearchBudgetLostImpressionShare: The estimated percent of times that + // your ad was eligible to show on the Search Network but didn't because + // your budget was too low. Note: Search budget lost impression share is + // reported in the range of 0 to 0.9. Any value above 0.9 is reported as + // 0.9001. + SearchBudgetLostImpressionShare float64 `json:"searchBudgetLostImpressionShare,omitempty"` + + // SearchBudgetLostTopImpressionShare: The number estimating how often + // your ad didn't show anywhere above the organic search results due to + // a low budget. Note: Search budget lost top impression share is + // reported in the range of 0 to 0.9. Any value above 0.9 is reported as + // 0.9001. + SearchBudgetLostTopImpressionShare float64 `json:"searchBudgetLostTopImpressionShare,omitempty"` + + // SearchClickShare: The number of clicks you've received on the Search + // Network divided by the estimated number of clicks you were eligible + // to receive. Note: Search click share is reported in the range of 0.1 + // to 1. Any value below 0.1 is reported as 0.0999. + SearchClickShare float64 `json:"searchClickShare,omitempty"` + + // SearchExactMatchImpressionShare: The impressions you've received + // divided by the estimated number of impressions you were eligible to + // receive on the Search Network for search terms that matched your + // keywords exactly (or were close variants of your keyword), regardless + // of your keyword match types. Note: Search exact match impression + // share is reported in the range of 0.1 to 1. Any value below 0.1 is + // reported as 0.0999. + SearchExactMatchImpressionShare float64 `json:"searchExactMatchImpressionShare,omitempty"` + + // SearchImpressionShare: The impressions you've received on the Search + // Network divided by the estimated number of impressions you were + // eligible to receive. Note: Search impression share is reported in the + // range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + SearchImpressionShare float64 `json:"searchImpressionShare,omitempty"` + + // SearchRankLostAbsoluteTopImpressionShare: The number estimating how + // often your ad wasn't the very first ad above the organic search + // results due to poor Ad Rank. Note: Search rank lost absolute top + // impression share is reported in the range of 0 to 0.9. Any value + // above 0.9 is reported as 0.9001. + SearchRankLostAbsoluteTopImpressionShare float64 `json:"searchRankLostAbsoluteTopImpressionShare,omitempty"` + + // SearchRankLostImpressionShare: The estimated percentage of + // impressions on the Search Network that your ads didn't receive due to + // poor Ad Rank. Note: Search rank lost impression share is reported in + // the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. + SearchRankLostImpressionShare float64 `json:"searchRankLostImpressionShare,omitempty"` + + // SearchRankLostTopImpressionShare: The number estimating how often + // your ad didn't show anywhere above the organic search results due to + // poor Ad Rank. Note: Search rank lost top impression share is reported + // in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. + SearchRankLostTopImpressionShare float64 `json:"searchRankLostTopImpressionShare,omitempty"` + + // SearchTopImpressionShare: The impressions you've received in the top + // location (anywhere above the organic search results) compared to the + // estimated number of impressions you were eligible to receive in the + // top location. Note: Search top impression share is reported in the + // range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + SearchTopImpressionShare float64 `json:"searchTopImpressionShare,omitempty"` + + // TopImpressionPercentage: The percent of your ad impressions that are + // shown anywhere above the organic search results. + TopImpressionPercentage float64 `json:"topImpressionPercentage,omitempty"` + + // ValuePerAllConversions: The value of all conversions divided by the + // number of all conversions. + ValuePerAllConversions float64 `json:"valuePerAllConversions,omitempty"` + + // ValuePerAllConversionsByConversionDate: The value of all conversions + // divided by the number of all conversions. When this column is + // selected with date, the values in date column means the conversion + // date. Details for the by_conversion_date columns are available at + // https://support.google.com/sa360/answer/9250611. + ValuePerAllConversionsByConversionDate float64 `json:"valuePerAllConversionsByConversionDate,omitempty"` + + // ValuePerConversion: The value of biddable conversion divided by the + // number of biddable conversions. Shows how much, on average, each of + // the biddable conversions is worth. + ValuePerConversion float64 `json:"valuePerConversion,omitempty"` + + // ValuePerConversionsByConversionDate: Biddable conversions value by + // conversion date divided by biddable conversions by conversion date. + // Shows how much, on average, each of the biddable conversions is worth + // (by conversion date). When this column is selected with date, the + // values in date column means the conversion date. + ValuePerConversionsByConversionDate float64 `json:"valuePerConversionsByConversionDate,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AbsoluteTopImpressionPercentage") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "AbsoluteTopImpressionPercentage") to include in API requests with + // the JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__Metrics) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__Metrics + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Common__Metrics) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Common__Metrics + var s1 struct { + AbsoluteTopImpressionPercentage gensupport.JSONFloat64 `json:"absoluteTopImpressionPercentage"` + AllConversions gensupport.JSONFloat64 `json:"allConversions"` + AllConversionsByConversionDate gensupport.JSONFloat64 `json:"allConversionsByConversionDate"` + AllConversionsFromClickToCall gensupport.JSONFloat64 `json:"allConversionsFromClickToCall"` + AllConversionsFromDirections gensupport.JSONFloat64 `json:"allConversionsFromDirections"` + AllConversionsFromInteractionsRate gensupport.JSONFloat64 `json:"allConversionsFromInteractionsRate"` + AllConversionsFromInteractionsValuePerInteraction gensupport.JSONFloat64 `json:"allConversionsFromInteractionsValuePerInteraction"` + AllConversionsFromMenu gensupport.JSONFloat64 `json:"allConversionsFromMenu"` + AllConversionsFromOrder gensupport.JSONFloat64 `json:"allConversionsFromOrder"` + AllConversionsFromOtherEngagement gensupport.JSONFloat64 `json:"allConversionsFromOtherEngagement"` + AllConversionsFromStoreVisit gensupport.JSONFloat64 `json:"allConversionsFromStoreVisit"` + AllConversionsFromStoreWebsite gensupport.JSONFloat64 `json:"allConversionsFromStoreWebsite"` + AllConversionsValue gensupport.JSONFloat64 `json:"allConversionsValue"` + AllConversionsValueByConversionDate gensupport.JSONFloat64 `json:"allConversionsValueByConversionDate"` + AllConversionsValuePerCost gensupport.JSONFloat64 `json:"allConversionsValuePerCost"` + AverageCost gensupport.JSONFloat64 `json:"averageCost"` + AverageCpc gensupport.JSONFloat64 `json:"averageCpc"` + AverageCpm gensupport.JSONFloat64 `json:"averageCpm"` + ClientAccountConversions gensupport.JSONFloat64 `json:"clientAccountConversions"` + ClientAccountConversionsValue gensupport.JSONFloat64 `json:"clientAccountConversionsValue"` + ContentBudgetLostImpressionShare gensupport.JSONFloat64 `json:"contentBudgetLostImpressionShare"` + ContentImpressionShare gensupport.JSONFloat64 `json:"contentImpressionShare"` + ContentRankLostImpressionShare gensupport.JSONFloat64 `json:"contentRankLostImpressionShare"` + Conversions gensupport.JSONFloat64 `json:"conversions"` + ConversionsByConversionDate gensupport.JSONFloat64 `json:"conversionsByConversionDate"` + ConversionsFromInteractionsRate gensupport.JSONFloat64 `json:"conversionsFromInteractionsRate"` + ConversionsFromInteractionsValuePerInteraction gensupport.JSONFloat64 `json:"conversionsFromInteractionsValuePerInteraction"` + ConversionsValue gensupport.JSONFloat64 `json:"conversionsValue"` + ConversionsValueByConversionDate gensupport.JSONFloat64 `json:"conversionsValueByConversionDate"` + ConversionsValuePerCost gensupport.JSONFloat64 `json:"conversionsValuePerCost"` + CostPerAllConversions gensupport.JSONFloat64 `json:"costPerAllConversions"` + CostPerConversion gensupport.JSONFloat64 `json:"costPerConversion"` + CostPerCurrentModelAttributedConversion gensupport.JSONFloat64 `json:"costPerCurrentModelAttributedConversion"` + CrossDeviceConversions gensupport.JSONFloat64 `json:"crossDeviceConversions"` + CrossDeviceConversionsValue gensupport.JSONFloat64 `json:"crossDeviceConversionsValue"` + Ctr gensupport.JSONFloat64 `json:"ctr"` + InteractionRate gensupport.JSONFloat64 `json:"interactionRate"` + InvalidClickRate gensupport.JSONFloat64 `json:"invalidClickRate"` + MobileFriendlyClicksPercentage gensupport.JSONFloat64 `json:"mobileFriendlyClicksPercentage"` + SearchAbsoluteTopImpressionShare gensupport.JSONFloat64 `json:"searchAbsoluteTopImpressionShare"` + SearchBudgetLostAbsoluteTopImpressionShare gensupport.JSONFloat64 `json:"searchBudgetLostAbsoluteTopImpressionShare"` + SearchBudgetLostImpressionShare gensupport.JSONFloat64 `json:"searchBudgetLostImpressionShare"` + SearchBudgetLostTopImpressionShare gensupport.JSONFloat64 `json:"searchBudgetLostTopImpressionShare"` + SearchClickShare gensupport.JSONFloat64 `json:"searchClickShare"` + SearchExactMatchImpressionShare gensupport.JSONFloat64 `json:"searchExactMatchImpressionShare"` + SearchImpressionShare gensupport.JSONFloat64 `json:"searchImpressionShare"` + SearchRankLostAbsoluteTopImpressionShare gensupport.JSONFloat64 `json:"searchRankLostAbsoluteTopImpressionShare"` + SearchRankLostImpressionShare gensupport.JSONFloat64 `json:"searchRankLostImpressionShare"` + SearchRankLostTopImpressionShare gensupport.JSONFloat64 `json:"searchRankLostTopImpressionShare"` + SearchTopImpressionShare gensupport.JSONFloat64 `json:"searchTopImpressionShare"` + TopImpressionPercentage gensupport.JSONFloat64 `json:"topImpressionPercentage"` + ValuePerAllConversions gensupport.JSONFloat64 `json:"valuePerAllConversions"` + ValuePerAllConversionsByConversionDate gensupport.JSONFloat64 `json:"valuePerAllConversionsByConversionDate"` + ValuePerConversion gensupport.JSONFloat64 `json:"valuePerConversion"` + ValuePerConversionsByConversionDate gensupport.JSONFloat64 `json:"valuePerConversionsByConversionDate"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.AbsoluteTopImpressionPercentage = float64(s1.AbsoluteTopImpressionPercentage) + s.AllConversions = float64(s1.AllConversions) + s.AllConversionsByConversionDate = float64(s1.AllConversionsByConversionDate) + s.AllConversionsFromClickToCall = float64(s1.AllConversionsFromClickToCall) + s.AllConversionsFromDirections = float64(s1.AllConversionsFromDirections) + s.AllConversionsFromInteractionsRate = float64(s1.AllConversionsFromInteractionsRate) + s.AllConversionsFromInteractionsValuePerInteraction = float64(s1.AllConversionsFromInteractionsValuePerInteraction) + s.AllConversionsFromMenu = float64(s1.AllConversionsFromMenu) + s.AllConversionsFromOrder = float64(s1.AllConversionsFromOrder) + s.AllConversionsFromOtherEngagement = float64(s1.AllConversionsFromOtherEngagement) + s.AllConversionsFromStoreVisit = float64(s1.AllConversionsFromStoreVisit) + s.AllConversionsFromStoreWebsite = float64(s1.AllConversionsFromStoreWebsite) + s.AllConversionsValue = float64(s1.AllConversionsValue) + s.AllConversionsValueByConversionDate = float64(s1.AllConversionsValueByConversionDate) + s.AllConversionsValuePerCost = float64(s1.AllConversionsValuePerCost) + s.AverageCost = float64(s1.AverageCost) + s.AverageCpc = float64(s1.AverageCpc) + s.AverageCpm = float64(s1.AverageCpm) + s.ClientAccountConversions = float64(s1.ClientAccountConversions) + s.ClientAccountConversionsValue = float64(s1.ClientAccountConversionsValue) + s.ContentBudgetLostImpressionShare = float64(s1.ContentBudgetLostImpressionShare) + s.ContentImpressionShare = float64(s1.ContentImpressionShare) + s.ContentRankLostImpressionShare = float64(s1.ContentRankLostImpressionShare) + s.Conversions = float64(s1.Conversions) + s.ConversionsByConversionDate = float64(s1.ConversionsByConversionDate) + s.ConversionsFromInteractionsRate = float64(s1.ConversionsFromInteractionsRate) + s.ConversionsFromInteractionsValuePerInteraction = float64(s1.ConversionsFromInteractionsValuePerInteraction) + s.ConversionsValue = float64(s1.ConversionsValue) + s.ConversionsValueByConversionDate = float64(s1.ConversionsValueByConversionDate) + s.ConversionsValuePerCost = float64(s1.ConversionsValuePerCost) + s.CostPerAllConversions = float64(s1.CostPerAllConversions) + s.CostPerConversion = float64(s1.CostPerConversion) + s.CostPerCurrentModelAttributedConversion = float64(s1.CostPerCurrentModelAttributedConversion) + s.CrossDeviceConversions = float64(s1.CrossDeviceConversions) + s.CrossDeviceConversionsValue = float64(s1.CrossDeviceConversionsValue) + s.Ctr = float64(s1.Ctr) + s.InteractionRate = float64(s1.InteractionRate) + s.InvalidClickRate = float64(s1.InvalidClickRate) + s.MobileFriendlyClicksPercentage = float64(s1.MobileFriendlyClicksPercentage) + s.SearchAbsoluteTopImpressionShare = float64(s1.SearchAbsoluteTopImpressionShare) + s.SearchBudgetLostAbsoluteTopImpressionShare = float64(s1.SearchBudgetLostAbsoluteTopImpressionShare) + s.SearchBudgetLostImpressionShare = float64(s1.SearchBudgetLostImpressionShare) + s.SearchBudgetLostTopImpressionShare = float64(s1.SearchBudgetLostTopImpressionShare) + s.SearchClickShare = float64(s1.SearchClickShare) + s.SearchExactMatchImpressionShare = float64(s1.SearchExactMatchImpressionShare) + s.SearchImpressionShare = float64(s1.SearchImpressionShare) + s.SearchRankLostAbsoluteTopImpressionShare = float64(s1.SearchRankLostAbsoluteTopImpressionShare) + s.SearchRankLostImpressionShare = float64(s1.SearchRankLostImpressionShare) + s.SearchRankLostTopImpressionShare = float64(s1.SearchRankLostTopImpressionShare) + s.SearchTopImpressionShare = float64(s1.SearchTopImpressionShare) + s.TopImpressionPercentage = float64(s1.TopImpressionPercentage) + s.ValuePerAllConversions = float64(s1.ValuePerAllConversions) + s.ValuePerAllConversionsByConversionDate = float64(s1.ValuePerAllConversionsByConversionDate) + s.ValuePerConversion = float64(s1.ValuePerConversion) + s.ValuePerConversionsByConversionDate = float64(s1.ValuePerConversionsByConversionDate) + return nil +} + +// GoogleAdsSearchads360V0Common__PercentCpc: A bidding strategy where +// bids are a fraction of the advertised price for some good or service. +type GoogleAdsSearchads360V0Common__PercentCpc struct { + // CpcBidCeilingMicros: Maximum bid limit that can be set by the bid + // strategy. This is an optional field entered by the advertiser and + // specified in local micros. Note: A zero value is interpreted in the + // same way as having bid_ceiling undefined. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // EnhancedCpcEnabled: Adjusts the bid for each auction upward or + // downward, depending on the likelihood of a conversion. Individual + // bids may exceed cpc_bid_ceiling_micros, but the average bid amount + // for a campaign should not. + EnhancedCpcEnabled bool `json:"enhancedCpcEnabled,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__PercentCpc) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__PercentCpc + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__RealTimeBiddingSetting: Settings for +// Real-Time Bidding, a feature only available for campaigns targeting +// the Ad Exchange network. +type GoogleAdsSearchads360V0Common__RealTimeBiddingSetting struct { + // OptIn: Whether the campaign is opted in to real-time bidding. + OptIn bool `json:"optIn,omitempty"` + + // ForceSendFields is a list of field names (e.g. "OptIn") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "OptIn") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__RealTimeBiddingSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__RealTimeBiddingSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__Segments: Segment only fields. +type GoogleAdsSearchads360V0Common__Segments struct { + // ConversionAction: Resource name of the conversion action. + ConversionAction string `json:"conversionAction,omitempty"` + + // ConversionActionCategory: Conversion action category. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "DEFAULT" - Default category. + // "PAGE_VIEW" - User visiting a page. + // "PURCHASE" - Purchase, sales, or "order placed" event. + // "SIGNUP" - Signup user action. + // "LEAD" - Lead-generating action. + // "DOWNLOAD" - Software download action (as for an app). + // "ADD_TO_CART" - The addition of items to a shopping cart or bag on + // an advertiser site. + // "BEGIN_CHECKOUT" - When someone enters the checkout flow on an + // advertiser site. + // "SUBSCRIBE_PAID" - The start of a paid subscription for a product + // or service. + // "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's + // offering. + // "IMPORTED_LEAD" - A lead conversion imported from an external + // source into Google Ads. + // "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site + // indicating business interest. + // "BOOK_APPOINTMENT" - A booking of an appointment with an + // advertiser's business. + // "REQUEST_QUOTE" - A quote or price estimate request. + // "GET_DIRECTIONS" - A search for an advertiser's business location + // with intention to visit. + // "OUTBOUND_CLICK" - A click to an advertiser's partner's site. + // "CONTACT" - A call, SMS, email, chat or other type of contact to an + // advertiser. + // "ENGAGEMENT" - A website engagement event such as long site time or + // a Google Analytics (GA) Smart Goal. Intended to be used for GA, + // Firebase, GA Gold goal imports. + // "STORE_VISIT" - A visit to a physical store location. + // "STORE_SALE" - A sale occurring in a physical store. + // "QUALIFIED_LEAD" - A lead conversion imported from an external + // source into Google Ads, that has been further qualified by the + // advertiser (marketing/sales team). In the lead-to-sale journey, + // advertisers get leads, then act on them by reaching out to the + // consumer. If the consumer is interested and may end up buying their + // product, the advertiser marks such leads as "qualified leads". + // "CONVERTED_LEAD" - A lead conversion imported from an external + // source into Google Ads, that has further completed a chosen stage as + // defined by the lead gen advertiser. + ConversionActionCategory string `json:"conversionActionCategory,omitempty"` + + // ConversionActionName: Conversion action name. + ConversionActionName string `json:"conversionActionName,omitempty"` + + // Date: Date to which metrics apply. yyyy-MM-dd format, for example, + // 2018-04-17. + Date string `json:"date,omitempty"` + + // DayOfWeek: Day of the week, for example, MONDAY. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - The value is unknown in this version. + // "MONDAY" - Monday. + // "TUESDAY" - Tuesday. + // "WEDNESDAY" - Wednesday. + // "THURSDAY" - Thursday. + // "FRIDAY" - Friday. + // "SATURDAY" - Saturday. + // "SUNDAY" - Sunday. + DayOfWeek string `json:"dayOfWeek,omitempty"` + + // Device: Device to which metrics apply. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - The value is unknown in this version. + // "MOBILE" - Mobile devices with full browsers. + // "TABLET" - Tablets with full browsers. + // "DESKTOP" - Computers. + // "CONNECTED_TV" - Smart TVs and game consoles. + // "OTHER" - Other device types. + Device string `json:"device,omitempty"` + + // Month: Month as represented by the date of the first day of a month. + // Formatted as yyyy-MM-dd. + Month string `json:"month,omitempty"` + + // Quarter: Quarter as represented by the date of the first day of a + // quarter. Uses the calendar year for quarters, for example, the second + // quarter of 2018 starts on 2018-04-01. Formatted as yyyy-MM-dd. + Quarter string `json:"quarter,omitempty"` + + // Week: Week as defined as Monday through Sunday, and represented by + // the date of Monday. Formatted as yyyy-MM-dd. + Week string `json:"week,omitempty"` + + // Year: Year, formatted as yyyy. + Year int64 `json:"year,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConversionAction") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ConversionAction") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__Segments) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__Segments + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__TargetCpa: An automated bid strategy +// that sets bids to help get as many conversions as possible at the +// target cost-per-acquisition (CPA) you set. +type GoogleAdsSearchads360V0Common__TargetCpa struct { + // CpcBidCeilingMicros: Maximum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // CpcBidFloorMicros: Minimum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"` + + // TargetCpaMicros: Average CPA target. This target should be greater + // than or equal to minimum billable unit based on the currency for the + // account. + TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__TargetCpa) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__TargetCpa + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__TargetCpm: Target CPM (cost per +// thousand impressions) is an automated bidding strategy that sets bids +// to optimize performance given the target CPM you set. +type GoogleAdsSearchads360V0Common__TargetCpm struct { +} + +// GoogleAdsSearchads360V0Common__TargetImpressionShare: 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). +type GoogleAdsSearchads360V0Common__TargetImpressionShare struct { + // CpcBidCeilingMicros: The highest CPC bid the automated bidding system + // is permitted to specify. This is a required field entered by the + // advertiser that sets the ceiling and specified in local micros. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // Location: The targeted location on the search results page. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ANYWHERE_ON_PAGE" - Any location on the web page. + // "TOP_OF_PAGE" - Top box of ads. + // "ABSOLUTE_TOP_OF_PAGE" - Top slot in the top box of ads. + Location string `json:"location,omitempty"` + + // LocationFractionMicros: The chosen fraction of ads to be shown in the + // targeted location in micros. For example, 1% equals 10,000. + LocationFractionMicros int64 `json:"locationFractionMicros,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__TargetImpressionShare) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__TargetImpressionShare + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__TargetOutrankShare: An automated +// bidding strategy that sets bids based on the target fraction of +// auctions where the advertiser should outrank a specific competitor. +// This strategy is deprecated. +type GoogleAdsSearchads360V0Common__TargetOutrankShare struct { + // CpcBidCeilingMicros: Maximum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__TargetOutrankShare) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__TargetOutrankShare + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__TargetRoas: An automated bidding +// strategy that helps you maximize revenue while averaging a specific +// target return on ad spend (ROAS). +type GoogleAdsSearchads360V0Common__TargetRoas struct { + // CpcBidCeilingMicros: Maximum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // CpcBidFloorMicros: Minimum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + // This should only be set for portfolio bid strategies. + CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"` + + // TargetRoas: Required. The chosen revenue (based on conversion data) + // per unit of spend. Value must be between 0.01 and 1000.0, inclusive. + TargetRoas float64 `json:"targetRoas,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__TargetRoas) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__TargetRoas + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Common__TargetRoas) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Common__TargetRoas + var s1 struct { + TargetRoas gensupport.JSONFloat64 `json:"targetRoas"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.TargetRoas = float64(s1.TargetRoas) + return nil +} + +// GoogleAdsSearchads360V0Common__TargetSpend: An automated bid strategy +// that sets your bids to help get as many clicks as possible within +// your budget. +type GoogleAdsSearchads360V0Common__TargetSpend struct { + // CpcBidCeilingMicros: Maximum bid limit that can be set by the bid + // strategy. The limit applies to all keywords managed by the strategy. + CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"` + + // TargetSpendMicros: The spend target under which to maximize clicks. A + // TargetSpend bidder will attempt to spend the smaller of this value or + // the natural throttling spend amount. If not specified, the budget is + // used as the spend target. This field is deprecated and should no + // longer be used. See + // https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html + // for details. + TargetSpendMicros int64 `json:"targetSpendMicros,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__TargetSpend) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__TargetSpend + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__Value: A generic data container. +type GoogleAdsSearchads360V0Common__Value struct { + // BooleanValue: A boolean. + BooleanValue bool `json:"booleanValue,omitempty"` + + // DoubleValue: A double. + DoubleValue float64 `json:"doubleValue,omitempty"` + + // FloatValue: A float. + FloatValue float64 `json:"floatValue,omitempty"` + + // Int64Value: An int64. + Int64Value int64 `json:"int64Value,omitempty,string"` + + // StringValue: A string. + StringValue string `json:"stringValue,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BooleanValue") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BooleanValue") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__Value) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__Value + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Common__Value) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Common__Value + var s1 struct { + DoubleValue gensupport.JSONFloat64 `json:"doubleValue"` + FloatValue gensupport.JSONFloat64 `json:"floatValue"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.DoubleValue = float64(s1.DoubleValue) + s.FloatValue = float64(s1.FloatValue) + return nil +} + +// GoogleAdsSearchads360V0Common__WebpageConditionInfo: Logical +// expression for targeting webpages of an advertiser's website. +type GoogleAdsSearchads360V0Common__WebpageConditionInfo struct { + // Argument: Argument of webpage targeting condition. + Argument string `json:"argument,omitempty"` + + // Operand: Operand of webpage targeting condition. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "URL" - Operand denoting a webpage URL targeting condition. + // "CATEGORY" - Operand denoting a webpage category targeting + // condition. + // "PAGE_TITLE" - Operand denoting a webpage title targeting + // condition. + // "PAGE_CONTENT" - Operand denoting a webpage content targeting + // condition. + // "CUSTOM_LABEL" - Operand denoting a webpage custom label targeting + // condition. + Operand string `json:"operand,omitempty"` + + // Operator: Operator of webpage targeting condition. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "EQUALS" - The argument web condition is equal to the compared web + // condition. + // "CONTAINS" - The argument web condition is part of the compared web + // condition. + Operator string `json:"operator,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Argument") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Argument") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__WebpageConditionInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__WebpageConditionInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Common__WebpageInfo: Represents a criterion +// for targeting webpages of an advertiser's website. +type GoogleAdsSearchads360V0Common__WebpageInfo struct { + // Conditions: Conditions, or logical expressions, for webpage + // targeting. The list of webpage targeting conditions are and-ed + // together when evaluated for targeting. An empty list of conditions + // indicates all pages of the campaign's website are targeted. This + // field is required for CREATE operations and is prohibited on UPDATE + // operations. + Conditions []*GoogleAdsSearchads360V0Common__WebpageConditionInfo `json:"conditions,omitempty"` + + // CoveragePercentage: Website criteria coverage percentage. This is the + // computed percentage of website coverage based on the website target, + // negative website target and negative keywords in the ad group and + // campaign. For instance, when coverage returns as 1, it indicates it + // has 100% coverage. This field is read-only. + CoveragePercentage float64 `json:"coveragePercentage,omitempty"` + + // CriterionName: The name of the criterion that is defined by this + // parameter. The name value will be used for identifying, sorting and + // filtering criteria with this type of parameters. This field is + // required for CREATE operations and is prohibited on UPDATE + // operations. + CriterionName string `json:"criterionName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Conditions") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Conditions") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Common__WebpageInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Common__WebpageInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Common__WebpageInfo) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Common__WebpageInfo + var s1 struct { + CoveragePercentage gensupport.JSONFloat64 `json:"coveragePercentage"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.CoveragePercentage = float64(s1.CoveragePercentage) + return nil +} + +// GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement: A part of +// a field path. +type GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement struct { + // FieldName: The name of a field or a oneof + FieldName string `json:"fieldName,omitempty"` + + // Index: If field_name is a repeated field, this is the element that + // failed + Index int64 `json:"index,omitempty"` + + // ForceSendFields is a list of field names (e.g. "FieldName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FieldName") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Errors__ErrorCode: The error reason +// represented by type and enum. +type GoogleAdsSearchads360V0Errors__ErrorCode struct { + // AuthenticationError: Indicates failure to properly authenticate user. + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "AUTHENTICATION_ERROR" - Authentication of the request failed. + // "CLIENT_CUSTOMER_ID_INVALID" - Client customer ID is not a number. + // "CUSTOMER_NOT_FOUND" - No customer found for the provided customer + // ID. + // "GOOGLE_ACCOUNT_DELETED" - Client's Google account is deleted. + // "GOOGLE_ACCOUNT_COOKIE_INVALID" - Account login token in the cookie + // is invalid. + // "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED" - A problem occurred during + // Google account authentication. + // "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH" - The user in the + // Google account login token does not match the user ID in the cookie. + // "LOGIN_COOKIE_REQUIRED" - Login cookie is required for + // authentication. + // "NOT_ADS_USER" - User in the cookie is not a valid Ads user. + // "OAUTH_TOKEN_INVALID" - OAuth token in the header is not valid. + // "OAUTH_TOKEN_EXPIRED" - OAuth token in the header has expired. + // "OAUTH_TOKEN_DISABLED" - OAuth token in the header has been + // disabled. + // "OAUTH_TOKEN_REVOKED" - OAuth token in the header has been revoked. + // "OAUTH_TOKEN_HEADER_INVALID" - OAuth token HTTP header is + // malformed. + // "LOGIN_COOKIE_INVALID" - Login cookie is not valid. + // "USER_ID_INVALID" - User ID in the header is not a valid ID. + // "TWO_STEP_VERIFICATION_NOT_ENROLLED" - An account administrator + // changed this account's authentication settings. To access this + // account, enable 2-Step Verification in your Google account at + // https://www.google.com/landing/2step. + // "ADVANCED_PROTECTION_NOT_ENROLLED" - An account administrator + // changed this account's authentication settings. To access this + // account, enable Advanced Protection in your Google account at + // https://landing.google.com/advancedprotection. + AuthenticationError string `json:"authenticationError,omitempty"` + + // AuthorizationError: An error encountered when trying to authorize a + // user. + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "USER_PERMISSION_DENIED" - User doesn't have permission to access + // customer. Note: If you're accessing a client customer, the manager's + // customer ID must be set in the `login-customer-id` header. Learn more + // at + // https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header + // "PROJECT_DISABLED" - The Google Cloud project sent in the request + // does not have permission to access the api. + // "AUTHORIZATION_ERROR" - Authorization of the client failed. + // "ACTION_NOT_PERMITTED" - The user does not have permission to + // perform this action (for example, ADD, UPDATE, REMOVE) on the + // resource or call a method. + // "INCOMPLETE_SIGNUP" - Signup not complete. + // "CUSTOMER_NOT_ENABLED" - The customer account can't be accessed + // because it is not yet enabled or has been deactivated. + // "MISSING_TOS" - The developer must sign the terms of service. They + // can be found here: https://developers.google.com/terms + // "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION" - The + // login customer specified does not have access to the account + // specified, so the request is invalid. + // "SERVICE_ACCESS_DENIED" - The developer specified does not have + // access to the service. + // "ACCESS_DENIED_FOR_ACCOUNT_TYPE" - The customer (or login customer) + // isn't allowed in Search Ads 360 API. It belongs to another ads + // system. + // "METRIC_ACCESS_DENIED" - The developer does not have access to the + // metrics queried. + AuthorizationError string `json:"authorizationError,omitempty"` + + // DateError: The reasons for the date error + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "INVALID_FIELD_VALUES_IN_DATE" - Given field values do not + // correspond to a valid date. + // "INVALID_FIELD_VALUES_IN_DATE_TIME" - Given field values do not + // correspond to a valid date time. + // "INVALID_STRING_DATE" - The string date's format should be + // yyyy-mm-dd. + // "INVALID_STRING_DATE_TIME_MICROS" - The string date time's format + // should be yyyy-mm-dd hh:mm:ss.ssssss. + // "INVALID_STRING_DATE_TIME_SECONDS" - The string date time's format + // should be yyyy-mm-dd hh:mm:ss. + // "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET" - The string date + // time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm. + // "EARLIER_THAN_MINIMUM_DATE" - Date is before allowed minimum. + // "LATER_THAN_MAXIMUM_DATE" - Date is after allowed maximum. + // "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE" - Date range + // bounds are not in order. + // "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" - Both dates in + // range are null. + DateError string `json:"dateError,omitempty"` + + // DateRangeError: The reasons for the date range error + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "INVALID_DATE" - Invalid date. + // "START_DATE_AFTER_END_DATE" - The start date was after the end + // date. + // "CANNOT_SET_DATE_TO_PAST" - Cannot set date to past time + // "AFTER_MAXIMUM_ALLOWABLE_DATE" - A date was used that is past the + // system "last" date. + // "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" - Trying to change + // start date on a resource that has started. + DateRangeError string `json:"dateRangeError,omitempty"` + + // DistinctError: The reasons for the distinct error + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "DUPLICATE_ELEMENT" - Duplicate element. + // "DUPLICATE_TYPE" - Duplicate type. + DistinctError string `json:"distinctError,omitempty"` + + // HeaderError: The reasons for the header error. + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "INVALID_USER_SELECTED_CUSTOMER_ID" - The user selected customer ID + // could not be validated. + // "INVALID_LOGIN_CUSTOMER_ID" - The login customer ID could not be + // validated. + HeaderError string `json:"headerError,omitempty"` + + // InternalError: An unexpected server-side error. + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "INTERNAL_ERROR" - API encountered unexpected internal error. + // "ERROR_CODE_NOT_PUBLISHED" - The intended error code doesn't exist + // in specified API version. It will be released in a future API + // version. + // "TRANSIENT_ERROR" - API encountered an unexpected transient error. + // The user should retry their request in these cases. + // "DEADLINE_EXCEEDED" - The request took longer than a deadline. + InternalError string `json:"internalError,omitempty"` + + // QueryError: An error with the query + // + // Possible values: + // "UNSPECIFIED" - Name unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "QUERY_ERROR" - Returned if all other query error reasons are not + // applicable. + // "BAD_ENUM_CONSTANT" - A condition used in the query references an + // invalid enum constant. + // "BAD_ESCAPE_SEQUENCE" - Query contains an invalid escape sequence. + // "BAD_FIELD_NAME" - Field name is invalid. + // "BAD_LIMIT_VALUE" - Limit value is invalid (for example, not a + // number) + // "BAD_NUMBER" - Encountered number can not be parsed. + // "BAD_OPERATOR" - Invalid operator encountered. + // "BAD_PARAMETER_NAME" - Parameter unknown or not supported. + // "BAD_PARAMETER_VALUE" - Parameter have invalid value. + // "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE" - Invalid resource type was + // specified in the FROM clause. + // "BAD_SYMBOL" - Non-ASCII symbol encountered outside of strings. + // "BAD_VALUE" - Value is invalid. + // "DATE_RANGE_TOO_WIDE" - Date filters fail to restrict date to a + // range smaller than 31 days. Applicable if the query is segmented by + // date. + // "DATE_RANGE_TOO_NARROW" - Filters on date/week/month/quarter have a + // start date after end date. + // "EXPECTED_AND" - Expected AND between values with BETWEEN operator. + // "EXPECTED_BY" - Expecting ORDER BY to have BY. + // "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE" - There was no + // dimension field selected. + // "EXPECTED_FILTERS_ON_DATE_RANGE" - Missing filters on date related + // fields. + // "EXPECTED_FROM" - Missing FROM clause. + // "EXPECTED_LIST" - The operator used in the conditions requires the + // value to be a list. + // "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE" - Fields used in WHERE + // or ORDER BY clauses are missing from the SELECT clause. + // "EXPECTED_SELECT" - SELECT is missing at the beginning of query. + // "EXPECTED_SINGLE_VALUE" - A list was passed as a value to a + // condition whose operator expects a single value. + // "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR" - Missing one or both values + // with BETWEEN operator. + // "INVALID_DATE_FORMAT" - Invalid date format. Expected 'YYYY-MM-DD'. + // "MISALIGNED_DATE_FOR_FILTER" - Misaligned date value for the + // filter. The date should be the start of a week/month/quarter if the + // filtered field is segments.week/segments.month/segments.quarter. + // "INVALID_STRING_VALUE" - Value passed was not a string when it + // should have been. For example, it was a number or unquoted literal. + // "INVALID_VALUE_WITH_BETWEEN_OPERATOR" - A String value passed to + // the BETWEEN operator does not parse as a date. + // "INVALID_VALUE_WITH_DURING_OPERATOR" - The value passed to the + // DURING operator is not a Date range literal + // "INVALID_VALUE_WITH_LIKE_OPERATOR" - A value was passed to the LIKE + // operator. + // "OPERATOR_FIELD_MISMATCH" - An operator was provided that is + // inapplicable to the field being filtered. + // "PROHIBITED_EMPTY_LIST_IN_CONDITION" - A Condition was found with + // an empty list. + // "PROHIBITED_ENUM_CONSTANT" - A condition used in the query + // references an unsupported enum constant. + // "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE" - Fields that are + // not allowed to be selected together were included in the SELECT + // clause. + // "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE" - A field that is not + // orderable was included in the ORDER BY clause. + // "PROHIBITED_FIELD_IN_SELECT_CLAUSE" - A field that is not + // selectable was included in the SELECT clause. + // "PROHIBITED_FIELD_IN_WHERE_CLAUSE" - A field that is not filterable + // was included in the WHERE clause. + // "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE" - Resource type specified + // in the FROM clause is not supported by this service. + // "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE" - A field that comes + // from an incompatible resource was included in the SELECT clause. + // "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE" - A field that comes + // from an incompatible resource was included in the WHERE clause. + // "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A metric + // incompatible with the main resource or other selected segmenting + // resources was included in the SELECT or WHERE clause. + // "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE" - A segment + // incompatible with the main resource or other selected segmenting + // resources was included in the SELECT or WHERE clause. + // "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A + // segment in the SELECT clause is incompatible with a metric in the + // SELECT or WHERE clause. + // "LIMIT_VALUE_TOO_LOW" - The value passed to the limit clause is too + // low. + // "PROHIBITED_NEWLINE_IN_STRING" - Query has a string containing a + // newline character. + // "PROHIBITED_VALUE_COMBINATION_IN_LIST" - List contains values of + // different types. + // "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR" - The values + // passed to the BETWEEN operator are not of the same type. + // "STRING_NOT_TERMINATED" - Query contains unterminated string. + // "TOO_MANY_SEGMENTS" - Too many segments are specified in SELECT + // clause. + // "UNEXPECTED_END_OF_QUERY" - Query is incomplete and cannot be + // parsed. + // "UNEXPECTED_FROM_CLAUSE" - FROM clause cannot be specified in this + // query. + // "UNRECOGNIZED_FIELD" - Query contains one or more unrecognized + // fields. + // "UNEXPECTED_INPUT" - Query has an unexpected extra part. + // "REQUESTED_METRICS_FOR_MANAGER" - Metrics cannot be requested for a + // manager account. To retrieve metrics, issue separate requests against + // each client account under the manager account. + // "FILTER_HAS_TOO_MANY_VALUES" - The number of values + // (right-hand-side operands) in a filter exceeds the limit. + QueryError string `json:"queryError,omitempty"` + + // QuotaError: An error with the amonut of quota remaining. + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "RESOURCE_EXHAUSTED" - Too many requests. + // "ACCESS_PROHIBITED" - Access is prohibited. + // "RESOURCE_TEMPORARILY_EXHAUSTED" - Too many requests in a short + // amount of time. + QuotaError string `json:"quotaError,omitempty"` + + // RequestError: An error caused by the request + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "RESOURCE_NAME_MISSING" - Resource name is required for this + // request. + // "RESOURCE_NAME_MALFORMED" - Resource name provided is malformed. + // "BAD_RESOURCE_ID" - Resource name provided is malformed. + // "INVALID_PRODUCT_NAME" - Product name is invalid. + // "INVALID_CUSTOMER_ID" - Customer ID is invalid. + // "OPERATION_REQUIRED" - Mutate operation should have either create, + // update, or remove specified. + // "RESOURCE_NOT_FOUND" - Requested resource not found. + // "INVALID_PAGE_TOKEN" - Next page token specified in user request is + // invalid. + // "EXPIRED_PAGE_TOKEN" - Next page token specified in user request + // has expired. + // "INVALID_PAGE_SIZE" - Page size specified in user request is + // invalid. + // "REQUIRED_FIELD_MISSING" - Required field is missing. + // "IMMUTABLE_FIELD" - The field cannot be modified because it's + // immutable. It's also possible that the field can be modified using + // 'create' operation but not 'update'. + // "TOO_MANY_MUTATE_OPERATIONS" - Received too many entries in + // request. + // "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT" - Request cannot be + // executed by a manager account. + // "CANNOT_MODIFY_FOREIGN_FIELD" - Mutate request was attempting to + // modify a readonly field. For instance, Budget fields can be requested + // for Ad Group, but are read-only for adGroups:mutate. + // "INVALID_ENUM_VALUE" - Enum value is not permitted. + // "LOGIN_CUSTOMER_ID_PARAMETER_MISSING" - The login-customer-id + // parameter is required for this request. + // "LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED" - Either + // login-customer-id or linked-customer-id parameter is required for + // this request. + // "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN" - page_token is set in the + // validate only request + // "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS" - + // return_summary_row cannot be enabled if request did not select any + // metrics field. + // "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS" - + // return_summary_row should not be enabled for validate only requests. + // "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE" - return_summary_row + // parameter value should be the same between requests with page_token + // field set and their original request. + // "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED" - The total results + // count cannot be returned if it was not requested in the original + // request. + // "RPC_DEADLINE_TOO_SHORT" - Deadline specified by the client was too + // short. + // "PRODUCT_NOT_SUPPORTED" - The product associated with the request + // is not supported for the current request. + RequestError string `json:"requestError,omitempty"` + + // SizeLimitError: The reasons for the size limit error + // + // Possible values: + // "UNSPECIFIED" - Enum unspecified. + // "UNKNOWN" - The received error code is not known in this version. + // "REQUEST_SIZE_LIMIT_EXCEEDED" - The number of entries in the + // request exceeds the system limit, or the contents of the operations + // exceed transaction limits due to their size or complexity. Try + // reducing the number of entries per request. + // "RESPONSE_SIZE_LIMIT_EXCEEDED" - The number of entries in the + // response exceeds the system limit. + SizeLimitError string `json:"sizeLimitError,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AuthenticationError") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AuthenticationError") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Errors__ErrorCode) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Errors__ErrorCode + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Errors__ErrorDetails: Additional error +// details. +type GoogleAdsSearchads360V0Errors__ErrorDetails struct { + // QuotaErrorDetails: Details on the quota error, including the scope + // (account or developer), the rate bucket name and the retry delay. + QuotaErrorDetails *GoogleAdsSearchads360V0Errors__QuotaErrorDetails `json:"quotaErrorDetails,omitempty"` + + // UnpublishedErrorCode: The error code that should have been returned, + // but wasn't. This is used when the error code is not published in the + // client specified version. + UnpublishedErrorCode string `json:"unpublishedErrorCode,omitempty"` + + // ForceSendFields is a list of field names (e.g. "QuotaErrorDetails") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "QuotaErrorDetails") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Errors__ErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Errors__ErrorDetails + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Errors__ErrorLocation: Describes the part of +// the request proto that caused the error. +type GoogleAdsSearchads360V0Errors__ErrorLocation struct { + // FieldPathElements: A field path that indicates which field was + // invalid in the request. + FieldPathElements []*GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement `json:"fieldPathElements,omitempty"` + + // ForceSendFields is a list of field names (e.g. "FieldPathElements") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FieldPathElements") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Errors__ErrorLocation) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Errors__ErrorLocation + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Errors__QuotaErrorDetails: Additional quota +// error details when there is QuotaError. +type GoogleAdsSearchads360V0Errors__QuotaErrorDetails struct { + // RateName: The high level description of the quota bucket. Examples + // are "Get requests for standard access" or "Requests per account". + RateName string `json:"rateName,omitempty"` + + // RateScope: The rate scope of the quota limit. + // + // Possible values: + // "UNSPECIFIED" - Unspecified enum + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ACCOUNT" - Per customer account quota + // "DEVELOPER" - Per project quota + RateScope string `json:"rateScope,omitempty"` + + // RetryDelay: Backoff period that customers should wait before sending + // next request. + RetryDelay string `json:"retryDelay,omitempty"` + + // ForceSendFields is a list of field names (e.g. "RateName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "RateName") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Errors__QuotaErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Errors__QuotaErrorDetails + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Errors__SearchAds360Error: +// SearchAds360-specific error. +type GoogleAdsSearchads360V0Errors__SearchAds360Error struct { + // Details: Additional error details, which are returned by certain + // error codes. Most error codes do not include details. + Details *GoogleAdsSearchads360V0Errors__ErrorDetails `json:"details,omitempty"` + + // ErrorCode: An enum value that indicates which error occurred. + ErrorCode *GoogleAdsSearchads360V0Errors__ErrorCode `json:"errorCode,omitempty"` + + // Location: Describes the part of the request proto that caused the + // error. + Location *GoogleAdsSearchads360V0Errors__ErrorLocation `json:"location,omitempty"` + + // Message: A human-readable description of the error. + Message string `json:"message,omitempty"` + + // Trigger: The value that triggered the error. + Trigger *GoogleAdsSearchads360V0Common__Value `json:"trigger,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Details") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Details") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Errors__SearchAds360Error) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Errors__SearchAds360Error + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Errors__SearchAds360Failure: Describes how a +// Search Ads 360 API call failed. It's returned inside +// google.rpc.Status.details when a call fails. +type GoogleAdsSearchads360V0Errors__SearchAds360Failure struct { + // Errors: The list of errors that occurred. + Errors []*GoogleAdsSearchads360V0Errors__SearchAds360Error `json:"errors,omitempty"` + + // RequestId: The unique ID of the request that is used for debugging + // purposes. + RequestId string `json:"requestId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Errors") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Errors") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Errors__SearchAds360Failure) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Errors__SearchAds360Failure + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo: A +// container for ad group criterion quality information. +type GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo struct { + // QualityScore: Output only. The quality score. This field may not be + // populated if Google does not have enough information to determine a + // value. + QualityScore int64 `json:"qualityScore,omitempty"` + + // ForceSendFields is a list of field names (e.g. "QualityScore") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "QualityScore") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting: The +// setting for controlling Dynamic Search Ads (DSA). +type GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting struct { + // DomainName: Required. The Internet domain name that this setting + // represents, for example, "google.com" or "www.google.com". + DomainName string `json:"domainName,omitempty"` + + // LanguageCode: Required. The language code specifying the language of + // the domain, for example, "en". + LanguageCode string `json:"languageCode,omitempty"` + + // UseSuppliedUrlsOnly: Whether the campaign uses advertiser supplied + // URLs exclusively. + UseSuppliedUrlsOnly bool `json:"useSuppliedUrlsOnly,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DomainName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DomainName") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting: +// Represents a collection of settings related to ads geotargeting. +type GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting struct { + // NegativeGeoTargetType: The setting used for negative geotargeting in + // this particular campaign. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - The value is unknown in this version. + // "PRESENCE_OR_INTEREST" - Specifies that a user is excluded from + // seeing the ad if they are in, or show interest in, advertiser's + // excluded locations. + // "PRESENCE" - Specifies that a user is excluded from seeing the ad + // if they are in advertiser's excluded locations. + NegativeGeoTargetType string `json:"negativeGeoTargetType,omitempty"` + + // PositiveGeoTargetType: The setting used for positive geotargeting in + // this particular campaign. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - The value is unknown in this version. + // "PRESENCE_OR_INTEREST" - Specifies that an ad is triggered if the + // user is in, or shows interest in, advertiser's targeted locations. + // "SEARCH_INTEREST" - Specifies that an ad is triggered if the user + // searches for advertiser's targeted locations. This can only be used + // with Search and standard Shopping campaigns. + // "PRESENCE" - Specifies that an ad is triggered if the user is in or + // regularly in advertiser's targeted locations. + PositiveGeoTargetType string `json:"positiveGeoTargetType,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "NegativeGeoTargetType") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NegativeGeoTargetType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings: The network +// settings for the campaign. +type GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings struct { + // TargetContentNetwork: Whether ads will be served on specified + // placements in the Google Display Network. Placements are specified + // using the Placement criterion. + TargetContentNetwork bool `json:"targetContentNetwork,omitempty"` + + // TargetGoogleSearch: Whether ads will be served with google.com search + // results. + TargetGoogleSearch bool `json:"targetGoogleSearch,omitempty"` + + // TargetPartnerSearchNetwork: Whether ads will be served on the Google + // Partner Network. This is available only to some select Google partner + // accounts. + TargetPartnerSearchNetwork bool `json:"targetPartnerSearchNetwork,omitempty"` + + // TargetSearchNetwork: Whether ads will be served on partner sites in + // the Google Search Network (requires `target_google_search` to also be + // `true`). + TargetSearchNetwork bool `json:"targetSearchNetwork,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "TargetContentNetwork") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "TargetContentNetwork") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting: +// Optimization goal setting for this campaign, which includes a set of +// optimization goal types. +type GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting struct { + // OptimizationGoalTypes: The list of optimization goal types. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used as a return value only. Represents value unknown + // in this version. + // "CALL_CLICKS" - Optimize for call clicks. Call click conversions + // are times people selected 'Call' to contact a store after viewing an + // ad. + // "DRIVING_DIRECTIONS" - Optimize for driving directions. Driving + // directions conversions are times people selected 'Get directions' to + // navigate to a store after viewing an ad. + // "APP_PRE_REGISTRATION" - Optimize for pre-registration. + // Pre-registration conversions are the number of pre-registration + // signups to receive a notification when the app is released. + OptimizationGoalTypes []string `json:"optimizationGoalTypes,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "OptimizationGoalTypes") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "OptimizationGoalTypes") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization: +// Selective optimization setting for this campaign, which includes a +// set of conversion actions to optimize this campaign towards. +type GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization struct { + // ConversionActions: The selected set of conversion actions for + // optimizing this campaign. + ConversionActions []string `json:"conversionActions,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConversionActions") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ConversionActions") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting: The setting +// for Shopping campaigns. Defines the universe of products that can be +// advertised by the campaign, and how this campaign interacts with +// other Shopping campaigns. +type GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting struct { + // CampaignPriority: Priority of the campaign. Campaigns with + // numerically higher priorities take precedence over those with lower + // priorities. This field is required for Shopping campaigns, with + // values between 0 and 2, inclusive. This field is optional for Smart + // Shopping campaigns, but must be equal to 3 if set. + CampaignPriority int64 `json:"campaignPriority,omitempty"` + + // EnableLocal: Whether to include local products. + EnableLocal bool `json:"enableLocal,omitempty"` + + // FeedLabel: Feed label of products to include in the campaign. Only + // one of feed_label or sales_country can be set. If used instead of + // sales_country, the feed_label field accepts country codes in the same + // format for example: 'XX'. Otherwise can be any string used for feed + // label in Google Merchant Center. + FeedLabel string `json:"feedLabel,omitempty"` + + // MerchantId: Immutable. ID of the Merchant Center account. This field + // is required for create operations. This field is immutable for + // Shopping campaigns. + MerchantId int64 `json:"merchantId,omitempty,string"` + + // SalesCountry: Sales country of products to include in the campaign. + SalesCountry string `json:"salesCountry,omitempty"` + + // UseVehicleInventory: Immutable. Whether to target Vehicle Listing + // inventory. + UseVehicleInventory bool `json:"useVehicleInventory,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CampaignPriority") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CampaignPriority") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting: +// Campaign-level settings for tracking information. +type GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting struct { + // TrackingUrl: Output only. The url used for dynamic tracking. + TrackingUrl string `json:"trackingUrl,omitempty"` + + // ForceSendFields is a list of field names (e.g. "TrackingUrl") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "TrackingUrl") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettin +// gs: Settings related to this conversion action's attribution model. +type GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings struct { + // AttributionModel: The attribution model type of this conversion + // action. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "EXTERNAL" - Uses external attribution. + // "GOOGLE_ADS_LAST_CLICK" - Attributes all credit for a conversion to + // its last click. + // "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK" - Attributes all credit for + // a conversion to its first click using Google Search attribution. + // "GOOGLE_SEARCH_ATTRIBUTION_LINEAR" - Attributes credit for a + // conversion equally across all of its clicks using Google Search + // attribution. + // "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY" - Attributes exponentially + // more credit for a conversion to its more recent clicks using Google + // Search attribution (half-life is 1 week). + // "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED" - Attributes 40% of the + // credit for a conversion to its first and last clicks. Remaining 20% + // is evenly distributed across all other clicks. This uses Google + // Search attribution. + // "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN" - Flexible model that uses + // machine learning to determine the appropriate distribution of credit + // among clicks using Google Search attribution. + AttributionModel string `json:"attributionModel,omitempty"` + + // DataDrivenModelStatus: Output only. The status of the data-driven + // attribution model for the conversion action. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "AVAILABLE" - The data driven model is available. + // "STALE" - The data driven model is stale. It hasn't been updated + // for at least 7 days. It is still being used, but will become expired + // if it does not get updated for 30 days. + // "EXPIRED" - The data driven model expired. It hasn't been updated + // for at least 30 days and cannot be used. Most commonly this is + // because there hasn't been the required number of events in a recent + // 30-day period. + // "NEVER_GENERATED" - The data driven model has never been generated. + // Most commonly this is because there has never been the required + // number of events in any 30-day period. + DataDrivenModelStatus string `json:"dataDrivenModelStatus,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AttributionModel") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AttributionModel") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings: +// Settings related to a Floodlight conversion action. +type GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings struct { + // ActivityGroupTag: Output only. String used to identify a Floodlight + // activity group when reporting conversions. + ActivityGroupTag string `json:"activityGroupTag,omitempty"` + + // ActivityId: Output only. ID of the Floodlight activity in DoubleClick + // Campaign Manager (DCM). + ActivityId int64 `json:"activityId,omitempty,string"` + + // ActivityTag: Output only. String used to identify a Floodlight + // activity when reporting conversions. + ActivityTag string `json:"activityTag,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ActivityGroupTag") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ActivityGroupTag") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0ResourcesConversionActionValueSettings: +// Settings related to the value for conversion events associated with +// this conversion action. +type GoogleAdsSearchads360V0ResourcesConversionActionValueSettings struct { + // AlwaysUseDefaultValue: Controls whether the default value and default + // currency code are used in place of the value and currency code + // specified in conversion events for this conversion action. + AlwaysUseDefaultValue bool `json:"alwaysUseDefaultValue,omitempty"` + + // DefaultCurrencyCode: The currency code to use when conversion events + // for this conversion action are sent with an invalid or missing + // currency code, or when this conversion action is configured to always + // use the default value. + DefaultCurrencyCode string `json:"defaultCurrencyCode,omitempty"` + + // DefaultValue: The value to use when conversion events for this + // conversion action are sent with an invalid, disallowed or missing + // value, or when this conversion action is configured to always use the + // default value. + DefaultValue float64 `json:"defaultValue,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AlwaysUseDefaultValue") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AlwaysUseDefaultValue") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0ResourcesConversionActionValueSettings) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionValueSettings + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0ResourcesConversionActionValueSettings) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionValueSettings + var s1 struct { + DefaultValue gensupport.JSONFloat64 `json:"defaultValue"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.DefaultValue = float64(s1.DefaultValue) + return nil +} + +// GoogleAdsSearchads360V0Resources__AdGroup: An ad group. +type GoogleAdsSearchads360V0Resources__AdGroup struct { + // AdRotationMode: The ad rotation mode of the ad group. + // + // Possible values: + // "UNSPECIFIED" - The ad rotation mode has not been specified. + // "UNKNOWN" - The received value is not known in this version. This + // is a response-only value. + // "OPTIMIZE" - Optimize ad group ads based on clicks or conversions. + // "ROTATE_FOREVER" - Rotate evenly forever. + AdRotationMode string `json:"adRotationMode,omitempty"` + + // CpcBidMicros: The maximum CPC (cost-per-click) bid. + CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"` + + // Id: Output only. The ID of the ad group. + Id int64 `json:"id,omitempty,string"` + + // Name: The name of the ad group. This field is required and should not + // be empty when creating new ad groups. It must contain fewer than 255 + // UTF-8 full-width characters. It must not contain any null (code point + // 0x0), NL line feed (code point 0xA) or carriage return (code point + // 0xD) characters. + Name string `json:"name,omitempty"` + + // ResourceName: Immutable. The resource name of the ad group. Ad group + // resource names have the form: + // `customers/{customer_id}/adGroups/{ad_group_id}` + ResourceName string `json:"resourceName,omitempty"` + + // Status: The status of the ad group. + // + // Possible values: + // "UNSPECIFIED" - The status has not been specified. + // "UNKNOWN" - The received value is not known in this version. This + // is a response-only value. + // "ENABLED" - The ad group is enabled. + // "PAUSED" - The ad group is paused. + // "REMOVED" - The ad group is removed. + Status string `json:"status,omitempty"` + + // Type: Immutable. The type of the ad group. + // + // Possible values: + // "UNSPECIFIED" - The type has not been specified. + // "UNKNOWN" - The received value is not known in this version. This + // is a response-only value. + // "SEARCH_STANDARD" - The default ad group type for Search campaigns. + // "DISPLAY_STANDARD" - The default ad group type for Display + // campaigns. + // "SHOPPING_PRODUCT_ADS" - The ad group type for Shopping campaigns + // serving standard product ads. + // "SHOPPING_SHOWCASE_ADS" - The type for ad groups that are limited + // to serving Showcase or Merchant ads in Shopping results. + // "HOTEL_ADS" - The default ad group type for Hotel campaigns. + // "SHOPPING_SMART_ADS" - The type for ad groups in Smart Shopping + // campaigns. + // "VIDEO_BUMPER" - Short unskippable in-stream video ads. + // "VIDEO_TRUE_VIEW_IN_STREAM" - TrueView (skippable) in-stream video + // ads. + // "VIDEO_TRUE_VIEW_IN_DISPLAY" - TrueView in-display video ads. + // "VIDEO_NON_SKIPPABLE_IN_STREAM" - Unskippable in-stream video ads. + // "VIDEO_OUTSTREAM" - Outstream video ads. + // "SEARCH_DYNAMIC_ADS" - Ad group type for Dynamic Search Ads ad + // groups. + // "SHOPPING_COMPARISON_LISTING_ADS" - The type for ad groups in + // Shopping Comparison Listing campaigns. + // "PROMOTED_HOTEL_ADS" - The ad group type for Promoted Hotel ad + // groups. + // "VIDEO_RESPONSIVE" - Video responsive ad groups. + // "VIDEO_EFFICIENT_REACH" - Video efficient reach ad groups. + // "SMART_CAMPAIGN_ADS" - Ad group type for Smart campaigns. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AdRotationMode") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdRotationMode") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__AdGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__AdGroup + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__AdGroupBidModifier: Represents an +// ad group bid modifier. +type GoogleAdsSearchads360V0Resources__AdGroupBidModifier struct { + // BidModifier: The modifier for the bid when the criterion matches. The + // modifier must be in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for + // PreferredContent. Use 0 to opt out of a Device type. + BidModifier float64 `json:"bidModifier,omitempty"` + + // ResourceName: Immutable. The resource name of the ad group bid + // modifier. Ad group bid modifier resource names have the form: + // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_ + // id}` + ResourceName string `json:"resourceName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BidModifier") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BidModifier") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__AdGroupBidModifier) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__AdGroupBidModifier + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Resources__AdGroupBidModifier) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Resources__AdGroupBidModifier + var s1 struct { + BidModifier gensupport.JSONFloat64 `json:"bidModifier"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.BidModifier = float64(s1.BidModifier) + return nil +} + +// GoogleAdsSearchads360V0Resources__AdGroupCriterion: An ad group +// criterion. +type GoogleAdsSearchads360V0Resources__AdGroupCriterion struct { + // AdGroup: Immutable. The ad group to which the criterion belongs. + AdGroup string `json:"adGroup,omitempty"` + + // AgeRange: Immutable. Age range. + AgeRange *GoogleAdsSearchads360V0Common__AgeRangeInfo `json:"ageRange,omitempty"` + + // BidModifier: The modifier for the bid when the criterion matches. The + // modifier must be in the range: 0.1 - 10.0. Most targetable criteria + // types support modifiers. + BidModifier float64 `json:"bidModifier,omitempty"` + + // CpcBidMicros: The CPC (cost-per-click) bid. + CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"` + + // CriterionId: Output only. The ID of the criterion. + CriterionId int64 `json:"criterionId,omitempty,string"` + + // EffectiveCpcBidMicros: Output only. The effective CPC + // (cost-per-click) bid. + EffectiveCpcBidMicros int64 `json:"effectiveCpcBidMicros,omitempty,string"` + + // EngineStatus: Output only. The Engine Status for ad group criterion. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "AD_GROUP_CRITERION_ELIGIBLE" - Deprecated. Do not use. + // "AD_GROUP_CRITERION_INAPPROPRIATE_FOR_CAMPAIGN" - Baidu: Bid or + // quality too low to be displayed. + // "AD_GROUP_CRITERION_INVALID_MOBILE_SEARCH" - Baidu: Bid or quality + // too low for mobile, but eligible to display for desktop. + // "AD_GROUP_CRITERION_INVALID_PC_SEARCH" - Baidu: Bid or quality too + // low for desktop, but eligible to display for mobile. + // "AD_GROUP_CRITERION_INVALID_SEARCH" - Baidu: Bid or quality too low + // to be displayed. + // "AD_GROUP_CRITERION_LOW_SEARCH_VOLUME" - Baidu: Paused by Baidu due + // to low search volume. + // "AD_GROUP_CRITERION_MOBILE_URL_UNDER_REVIEW" - Baidu: Mobile URL in + // process to be reviewed. + // "AD_GROUP_CRITERION_PARTIALLY_INVALID" - Baidu: The landing page + // for one device is invalid, while the landing page for the other + // device is valid. + // "AD_GROUP_CRITERION_TO_BE_ACTIVATED" - Baidu: Keyword has been + // created and paused by Baidu account management, and is now ready for + // you to activate it. + // "AD_GROUP_CRITERION_UNDER_REVIEW" - Baidu: In process to be + // reviewed by Baidu. Gemini: Criterion under review. + // "AD_GROUP_CRITERION_NOT_REVIEWED" - Baidu: Criterion to be + // reviewed. + // "AD_GROUP_CRITERION_ON_HOLD" - Deprecated. Do not use. Previously + // used by Gemini + // "AD_GROUP_CRITERION_PENDING_REVIEW" - Y!J : Criterion pending + // review + // "AD_GROUP_CRITERION_PAUSED" - Criterion has been paused. + // "AD_GROUP_CRITERION_REMOVED" - Criterion has been removed. + // "AD_GROUP_CRITERION_APPROVED" - Criterion has been approved. + // "AD_GROUP_CRITERION_DISAPPROVED" - Criterion has been disapproved. + // "AD_GROUP_CRITERION_SERVING" - Criterion is active and serving. + // "AD_GROUP_CRITERION_ACCOUNT_PAUSED" - Criterion has been paused + // since the account is paused. + EngineStatus string `json:"engineStatus,omitempty"` + + // FinalUrlSuffix: URL template for appending params to final URL. + FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"` + + // FinalUrls: The list of possible final URLs after all cross-domain + // redirects for the ad. + FinalUrls []string `json:"finalUrls,omitempty"` + + // Gender: Immutable. Gender. + Gender *GoogleAdsSearchads360V0Common__GenderInfo `json:"gender,omitempty"` + + // Keyword: Immutable. Keyword. + Keyword *GoogleAdsSearchads360V0Common__KeywordInfo `json:"keyword,omitempty"` + + // LastModifiedTime: Output only. The datetime when this ad group + // criterion was last modified. The datetime is in the customer's time + // zone and in "yyyy-MM-dd HH:mm:ss.ssssss" format. + LastModifiedTime string `json:"lastModifiedTime,omitempty"` + + // ListingGroup: Immutable. Listing group. + ListingGroup *GoogleAdsSearchads360V0Common__ListingGroupInfo `json:"listingGroup,omitempty"` + + // QualityInfo: Output only. Information regarding the quality of the + // criterion. + QualityInfo *GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo `json:"qualityInfo,omitempty"` + + // ResourceName: Immutable. The resource name of the ad group criterion. + // Ad group criterion resource names have the form: + // `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}` + ResourceName string `json:"resourceName,omitempty"` + + // Status: The status of the criterion. This is the status of the ad + // group criterion entity, set by the client. Note: UI reports may + // incorporate additional information that affects whether a criterion + // is eligible to run. In some cases a criterion that's REMOVED in the + // API can still show as enabled in the UI. For example, campaigns by + // default show to users of all age ranges unless excluded. The UI will + // show each age range as "enabled", since they're eligible to see the + // ads; but AdGroupCriterion.status will show "removed", since no + // positive criterion was added. + // + // Possible values: + // "UNSPECIFIED" - No value has been specified. + // "UNKNOWN" - The received value is not known in this version. This + // is a response-only value. + // "ENABLED" - The ad group criterion is enabled. + // "PAUSED" - The ad group criterion is paused. + // "REMOVED" - The ad group criterion is removed. + Status string `json:"status,omitempty"` + + // TrackingUrlTemplate: The URL template for constructing a tracking + // URL. + TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"` + + // Type: Output only. The type of the criterion. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "KEYWORD" - Keyword, for example, 'mars cruise'. + // "PLACEMENT" - Placement, also known as Website, for example, + // 'www.flowers4sale.com' + // "MOBILE_APP_CATEGORY" - Mobile application categories to target. + // "MOBILE_APPLICATION" - Mobile applications to target. + // "DEVICE" - Devices to target. + // "LOCATION" - Locations to target. + // "LISTING_GROUP" - Listing groups to target. + // "AD_SCHEDULE" - Ad Schedule. + // "AGE_RANGE" - Age range. + // "GENDER" - Gender. + // "INCOME_RANGE" - Income Range. + // "PARENTAL_STATUS" - Parental status. + // "YOUTUBE_VIDEO" - YouTube Video. + // "YOUTUBE_CHANNEL" - YouTube Channel. + // "USER_LIST" - User list. + // "PROXIMITY" - Proximity. + // "TOPIC" - A topic target on the display network (for example, "Pets + // & Animals"). + // "LISTING_SCOPE" - Listing scope to target. + // "LANGUAGE" - Language. + // "IP_BLOCK" - IpBlock. + // "CONTENT_LABEL" - Content Label for category exclusion. + // "CARRIER" - Carrier. + // "USER_INTEREST" - A category the user is interested in. + // "WEBPAGE" - Webpage criterion for dynamic search ads. + // "OPERATING_SYSTEM_VERSION" - Operating system version. + // "APP_PAYMENT_MODEL" - App payment model. + // "MOBILE_DEVICE" - Mobile device. + // "CUSTOM_AFFINITY" - Custom affinity. + // "CUSTOM_INTENT" - Custom intent. + // "LOCATION_GROUP" - Location group. + // "CUSTOM_AUDIENCE" - Custom audience + // "COMBINED_AUDIENCE" - Combined audience + // "KEYWORD_THEME" - Smart Campaign keyword theme + // "AUDIENCE" - Audience + // "LOCAL_SERVICE_ID" - Google Local Services (GLS) Service ID. + Type string `json:"type,omitempty"` + + // Webpage: Immutable. Webpage + Webpage *GoogleAdsSearchads360V0Common__WebpageInfo `json:"webpage,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AdGroup") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdGroup") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__AdGroupCriterion) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__AdGroupCriterion + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Resources__AdGroupCriterion) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Resources__AdGroupCriterion + var s1 struct { + BidModifier gensupport.JSONFloat64 `json:"bidModifier"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.BidModifier = float64(s1.BidModifier) + return nil +} + +// GoogleAdsSearchads360V0Resources__BiddingStrategy: A bidding +// strategy. +type GoogleAdsSearchads360V0Resources__BiddingStrategy struct { + // CampaignCount: Output only. The number of campaigns attached to this + // bidding strategy. This field is read-only. + CampaignCount int64 `json:"campaignCount,omitempty,string"` + + // CurrencyCode: Immutable. The currency used by the bidding strategy + // (ISO 4217 three-letter code). For bidding strategies in manager + // customers, this currency can be set on creation and defaults to the + // manager customer's currency. For serving customers, this field cannot + // be set; all strategies in a serving customer implicitly use the + // serving customer's currency. In all cases the effective_currency_code + // field returns the currency used by the strategy. + CurrencyCode string `json:"currencyCode,omitempty"` + + // EffectiveCurrencyCode: Output only. The currency used by the bidding + // strategy (ISO 4217 three-letter code). For bidding strategies in + // manager customers, this is the currency set by the advertiser when + // creating the strategy. For serving customers, this is the customer's + // currency_code. Bidding strategy metrics are reported in this + // currency. This field is read-only. + EffectiveCurrencyCode string `json:"effectiveCurrencyCode,omitempty"` + + // EnhancedCpc: 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. + EnhancedCpc *GoogleAdsSearchads360V0Common__EnhancedCpc `json:"enhancedCpc,omitempty"` + + // Id: Output only. The ID of the bidding strategy. + Id int64 `json:"id,omitempty,string"` + + // MaximizeConversionValue: An automated bidding strategy to help get + // the most conversion value for your campaigns while spending your + // budget. + MaximizeConversionValue *GoogleAdsSearchads360V0Common__MaximizeConversionValue `json:"maximizeConversionValue,omitempty"` + + // MaximizeConversions: An automated bidding strategy to help get the + // most conversions for your campaigns while spending your budget. + MaximizeConversions *GoogleAdsSearchads360V0Common__MaximizeConversions `json:"maximizeConversions,omitempty"` + + // Name: The name of the bidding strategy. All bidding strategies within + // an account must be named distinctly. The length of this string should + // be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed). + Name string `json:"name,omitempty"` + + // NonRemovedCampaignCount: Output only. The number of non-removed + // campaigns attached to this bidding strategy. This field is read-only. + NonRemovedCampaignCount int64 `json:"nonRemovedCampaignCount,omitempty,string"` + + // ResourceName: Immutable. The resource name of the bidding strategy. + // Bidding strategy resource names have the form: + // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` + ResourceName string `json:"resourceName,omitempty"` + + // Status: Output only. The status of the bidding strategy. This field + // is read-only. + // + // Possible values: + // "UNSPECIFIED" - No value has been specified. + // "UNKNOWN" - The received value is not known in this version. This + // is a response-only value. + // "ENABLED" - The bidding strategy is enabled. + // "REMOVED" - The bidding strategy is removed. + Status string `json:"status,omitempty"` + + // TargetCpa: A bidding strategy that sets bids to help get as many + // conversions as possible at the target cost-per-acquisition (CPA) you + // set. + TargetCpa *GoogleAdsSearchads360V0Common__TargetCpa `json:"targetCpa,omitempty"` + + // TargetImpressionShare: A bidding strategy that automatically + // optimizes towards a chosen percentage of impressions. + TargetImpressionShare *GoogleAdsSearchads360V0Common__TargetImpressionShare `json:"targetImpressionShare,omitempty"` + + // TargetOutrankShare: A bidding strategy that sets bids based on the + // target fraction of auctions where the advertiser should outrank a + // specific competitor. This field is deprecated. Creating a new bidding + // strategy with this field or attaching bidding strategies with this + // field to a campaign will fail. Mutates to strategies that already + // have this scheme populated are allowed. + TargetOutrankShare *GoogleAdsSearchads360V0Common__TargetOutrankShare `json:"targetOutrankShare,omitempty"` + + // TargetRoas: A bidding strategy that helps you maximize revenue while + // averaging a specific target Return On Ad Spend (ROAS). + TargetRoas *GoogleAdsSearchads360V0Common__TargetRoas `json:"targetRoas,omitempty"` + + // TargetSpend: A bid strategy that sets your bids to help get as many + // clicks as possible within your budget. + TargetSpend *GoogleAdsSearchads360V0Common__TargetSpend `json:"targetSpend,omitempty"` + + // Type: Output only. The type of the bidding strategy. Create a bidding + // strategy by setting the bidding scheme. This field is read-only. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "COMMISSION" - Commission is an automatic bidding strategy in which + // the advertiser pays a certain portion of the conversion value. + // "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises + // bids for clicks that seem more likely to lead to a conversion and + // lowers them for clicks where they seem less likely. + // "INVALID" - Used for return value only. Indicates that a campaign + // does not have a bidding strategy. This prevents the campaign from + // serving. For example, a campaign may be attached to a manager bidding + // strategy and the serving account is subsequently unlinked from the + // manager account. In this case the campaign will automatically be + // detached from the now inaccessible manager bidding strategy and + // transition to the INVALID bidding strategy type. + // "MANUAL_CPA" - Manual bidding strategy that allows advertiser to + // set the bid per advertiser-specified action. + // "MANUAL_CPC" - Manual click based bidding where user pays per + // click. + // "MANUAL_CPM" - Manual impression based bidding where user pays per + // thousand impressions. + // "MANUAL_CPV" - A bidding strategy that pays a configurable amount + // per video view. + // "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically + // maximizes number of conversions given a daily budget. + // "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that + // automatically sets bids to maximize revenue while spending your + // budget. + // "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets + // max cpc bids to target impressions on page one or page one promoted + // slots on google.com. This enum value is deprecated. + // "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a + // fraction of the advertised price for some good or service. + // "TARGET_CPA" - Target CPA is an automated bid strategy that sets + // bids to help get as many conversions as possible at the target + // cost-per-acquisition (CPA) you set. + // "TARGET_CPM" - Target CPM is an automated bid strategy that sets + // bids to help get as many impressions as possible at the target cost + // per one thousand impressions (CPM) you set. + // "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets + // bids so that a certain percentage of search ads are shown at the top + // of the first page (or other targeted location). + // "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated + // bidding strategy that sets bids based on the target fraction of + // auctions where the advertiser should outrank a specific competitor. + // This enum value is deprecated. + // "TARGET_ROAS" - Target ROAS is an automated bidding strategy that + // helps you maximize revenue while averaging a specific target Return + // On Average Spend (ROAS). + // "TARGET_SPEND" - Target Spend is an automated bid strategy that + // sets your bids to help get as many clicks as possible within your + // budget. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CampaignCount") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CampaignCount") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__BiddingStrategy) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__BiddingStrategy + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__Campaign: A campaign. +type GoogleAdsSearchads360V0Resources__Campaign struct { + // AdServingOptimizationStatus: The ad serving optimization status of + // the campaign. + // + // Possible values: + // "UNSPECIFIED" - No value has been specified. + // "UNKNOWN" - The received value is not known in this version. This + // is a response-only value. + // "OPTIMIZE" - Ad serving is optimized based on CTR for the campaign. + // "CONVERSION_OPTIMIZE" - Ad serving is optimized based on CTR * + // Conversion for the campaign. If the campaign is not in the conversion + // optimizer bidding strategy, it will default to OPTIMIZED. + // "ROTATE" - Ads are rotated evenly for 90 days, then optimized for + // clicks. + // "ROTATE_INDEFINITELY" - Show lower performing ads more evenly with + // higher performing ads, and do not optimize. + // "UNAVAILABLE" - Ad serving optimization status is not available. + AdServingOptimizationStatus string `json:"adServingOptimizationStatus,omitempty"` + + // AdvertisingChannelSubType: Immutable. Optional refinement to + // `advertising_channel_type`. Must be a valid sub-type of the parent + // channel type. Can be set only when creating campaigns. After campaign + // is created, the field can not be changed. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used as a return value only. Represents value unknown + // in this version. + // "SEARCH_MOBILE_APP" - Mobile app campaigns for Search. + // "DISPLAY_MOBILE_APP" - Mobile app campaigns for Display. + // "SEARCH_EXPRESS" - AdWords express campaigns for search. + // "DISPLAY_EXPRESS" - AdWords Express campaigns for display. + // "SHOPPING_SMART_ADS" - Smart Shopping campaigns. + // "DISPLAY_GMAIL_AD" - Gmail Ad campaigns. + // "DISPLAY_SMART_CAMPAIGN" - Smart display campaigns. + // "VIDEO_OUTSTREAM" - Video Outstream campaigns. + // "VIDEO_ACTION" - Video TrueView for Action campaigns. + // "VIDEO_NON_SKIPPABLE" - Video campaigns with non-skippable video + // ads. + // "APP_CAMPAIGN" - App Campaign that lets you easily promote your + // Android or iOS app across Google's top properties including Search, + // Play, YouTube, and the Google Display Network. + // "APP_CAMPAIGN_FOR_ENGAGEMENT" - App Campaign for engagement, + // focused on driving re-engagement with the app across several of + // Google's top properties including Search, YouTube, and the Google + // Display Network. + // "LOCAL_CAMPAIGN" - Campaigns specialized for local advertising. + // "SHOPPING_COMPARISON_LISTING_ADS" - Shopping Comparison Listing + // campaigns. + // "SMART_CAMPAIGN" - Standard Smart campaigns. + // "VIDEO_SEQUENCE" - Video campaigns with sequence video ads. + // "APP_CAMPAIGN_FOR_PRE_REGISTRATION" - App Campaign for pre + // registration, specialized for advertising mobile app + // pre-registration, that targets multiple advertising channels across + // Google Play, YouTube and Display Network. + // "VIDEO_REACH_TARGET_FREQUENCY" - Video reach campaign with Target + // Frequency bidding strategy. + AdvertisingChannelSubType string `json:"advertisingChannelSubType,omitempty"` + + // AdvertisingChannelType: Immutable. The primary serving target for ads + // within the campaign. The targeting options can be refined in + // `network_settings`. This field is required and should not be empty + // when creating new campaigns. Can be set only when creating campaigns. + // After the campaign is created, the field can not be changed. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "SEARCH" - Search Network. Includes display bundled, and Search+ + // campaigns. + // "DISPLAY" - Google Display Network only. + // "SHOPPING" - Shopping campaigns serve on the shopping property and + // on google.com search results. + // "HOTEL" - Hotel Ads campaigns. + // "VIDEO" - Video campaigns. + // "MULTI_CHANNEL" - App Campaigns, and App Campaigns for Engagement, + // that run across multiple channels. + // "LOCAL" - Local ads campaigns. + // "SMART" - Smart campaigns. + // "PERFORMANCE_MAX" - Performance Max campaigns. + // "LOCAL_SERVICES" - Local services campaigns. + // "DISCOVERY" - Discovery campaigns. + AdvertisingChannelType string `json:"advertisingChannelType,omitempty"` + + // BiddingStrategy: Portfolio bidding strategy used by campaign. + BiddingStrategy string `json:"biddingStrategy,omitempty"` + + // BiddingStrategySystemStatus: Output only. The system status of the + // campaign's bidding strategy. + // + // Possible values: + // "UNSPECIFIED" - Signals that an unexpected error occurred, for + // example, no bidding strategy type was found, or no status information + // was found. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ENABLED" - The bid strategy is active, and AdWords cannot find any + // specific issues with the strategy. + // "LEARNING_NEW" - The bid strategy is learning because it has been + // recently created or recently reactivated. + // "LEARNING_SETTING_CHANGE" - The bid strategy is learning because of + // a recent setting change. + // "LEARNING_BUDGET_CHANGE" - The bid strategy is learning because of + // a recent budget change. + // "LEARNING_COMPOSITION_CHANGE" - The bid strategy is learning + // because of recent change in number of campaigns, ad groups or + // keywords attached to it. + // "LEARNING_CONVERSION_TYPE_CHANGE" - The bid strategy depends on + // conversion reporting and the customer recently modified conversion + // types that were relevant to the bid strategy. + // "LEARNING_CONVERSION_SETTING_CHANGE" - The bid strategy depends on + // conversion reporting and the customer recently changed their + // conversion settings. + // "LIMITED_BY_CPC_BID_CEILING" - The bid strategy is limited by its + // bid ceiling. + // "LIMITED_BY_CPC_BID_FLOOR" - The bid strategy is limited by its bid + // floor. + // "LIMITED_BY_DATA" - The bid strategy is limited because there was + // not enough conversion traffic over the past weeks. + // "LIMITED_BY_BUDGET" - A significant fraction of keywords in this + // bid strategy are limited by budget. + // "LIMITED_BY_LOW_PRIORITY_SPEND" - The bid strategy cannot reach its + // target spend because its spend has been de-prioritized. + // "LIMITED_BY_LOW_QUALITY" - A significant fraction of keywords in + // this bid strategy have a low Quality Score. + // "LIMITED_BY_INVENTORY" - The bid strategy cannot fully spend its + // budget because of narrow targeting. + // "MISCONFIGURED_ZERO_ELIGIBILITY" - Missing conversion tracking (no + // pings present) and/or remarketing lists for SSC. + // "MISCONFIGURED_CONVERSION_TYPES" - The bid strategy depends on + // conversion reporting and the customer is lacking conversion types + // that might be reported against this strategy. + // "MISCONFIGURED_CONVERSION_SETTINGS" - The bid strategy depends on + // conversion reporting and the customer's conversion settings are + // misconfigured. + // "MISCONFIGURED_SHARED_BUDGET" - There are campaigns outside the bid + // strategy that share budgets with campaigns included in the strategy. + // "MISCONFIGURED_STRATEGY_TYPE" - The campaign has an invalid + // strategy type and is not serving. + // "PAUSED" - The bid strategy is not active. Either there are no + // active campaigns, ad groups or keywords attached to the bid strategy. + // Or there are no active budgets connected to the bid strategy. + // "UNAVAILABLE" - This bid strategy currently does not support status + // reporting. + // "MULTIPLE_LEARNING" - There were multiple LEARNING_* system + // statuses for this bid strategy during the time in question. + // "MULTIPLE_LIMITED" - There were multiple LIMITED_* system statuses + // for this bid strategy during the time in question. + // "MULTIPLE_MISCONFIGURED" - There were multiple MISCONFIGURED_* + // system statuses for this bid strategy during the time in question. + // "MULTIPLE" - There were multiple system statuses for this bid + // strategy during the time in question. + BiddingStrategySystemStatus string `json:"biddingStrategySystemStatus,omitempty"` + + // BiddingStrategyType: Output only. The type of bidding strategy. A + // bidding strategy can be created by setting either the bidding scheme + // to create a standard bidding strategy or the `bidding_strategy` field + // to create a portfolio bidding strategy. This field is read-only. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "COMMISSION" - Commission is an automatic bidding strategy in which + // the advertiser pays a certain portion of the conversion value. + // "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises + // bids for clicks that seem more likely to lead to a conversion and + // lowers them for clicks where they seem less likely. + // "INVALID" - Used for return value only. Indicates that a campaign + // does not have a bidding strategy. This prevents the campaign from + // serving. For example, a campaign may be attached to a manager bidding + // strategy and the serving account is subsequently unlinked from the + // manager account. In this case the campaign will automatically be + // detached from the now inaccessible manager bidding strategy and + // transition to the INVALID bidding strategy type. + // "MANUAL_CPA" - Manual bidding strategy that allows advertiser to + // set the bid per advertiser-specified action. + // "MANUAL_CPC" - Manual click based bidding where user pays per + // click. + // "MANUAL_CPM" - Manual impression based bidding where user pays per + // thousand impressions. + // "MANUAL_CPV" - A bidding strategy that pays a configurable amount + // per video view. + // "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically + // maximizes number of conversions given a daily budget. + // "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that + // automatically sets bids to maximize revenue while spending your + // budget. + // "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets + // max cpc bids to target impressions on page one or page one promoted + // slots on google.com. This enum value is deprecated. + // "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a + // fraction of the advertised price for some good or service. + // "TARGET_CPA" - Target CPA is an automated bid strategy that sets + // bids to help get as many conversions as possible at the target + // cost-per-acquisition (CPA) you set. + // "TARGET_CPM" - Target CPM is an automated bid strategy that sets + // bids to help get as many impressions as possible at the target cost + // per one thousand impressions (CPM) you set. + // "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets + // bids so that a certain percentage of search ads are shown at the top + // of the first page (or other targeted location). + // "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated + // bidding strategy that sets bids based on the target fraction of + // auctions where the advertiser should outrank a specific competitor. + // This enum value is deprecated. + // "TARGET_ROAS" - Target ROAS is an automated bidding strategy that + // helps you maximize revenue while averaging a specific target Return + // On Average Spend (ROAS). + // "TARGET_SPEND" - Target Spend is an automated bid strategy that + // sets your bids to help get as many clicks as possible within your + // budget. + BiddingStrategyType string `json:"biddingStrategyType,omitempty"` + + // CampaignBudget: The budget of the campaign. + CampaignBudget string `json:"campaignBudget,omitempty"` + + // CreateTime: Output only. Timestamp of the campaign's creation time, + // formatted in ISO 8601. + CreateTime string `json:"createTime,omitempty"` + + // DynamicSearchAdsSetting: The setting for controlling Dynamic Search + // Ads (DSA). + DynamicSearchAdsSetting *GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting `json:"dynamicSearchAdsSetting,omitempty"` + + // EndDate: The last day of the campaign in serving customer's timezone + // in YYYY-MM-DD format. On create, defaults to 2037-12-30, which means + // the campaign will run indefinitely. To set an existing campaign to + // run indefinitely, set this field to 2037-12-30. + EndDate string `json:"endDate,omitempty"` + + // EngineId: Output only. ID of the campaign 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 + // "campaign.id" instead. + EngineId string `json:"engineId,omitempty"` + + // ExcludedParentAssetFieldTypes: 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. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "HEADLINE" - The asset is linked for use as a headline. + // "DESCRIPTION" - The asset is linked for use as a description. + // "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad + // text. + // "MARKETING_IMAGE" - The asset is linked for use as a marketing + // image. + // "MEDIA_BUNDLE" - The asset is linked for use as a media bundle. + // "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video. + // "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels + // campaign is "Book on Google" enabled. + // "LEAD_FORM" - The asset is linked for use as a Lead Form extension. + // "PROMOTION" - The asset is linked for use as a Promotion extension. + // "CALLOUT" - The asset is linked for use as a Callout extension. + // "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured + // Snippet extension. + // "SITELINK" - The asset is linked for use as a Sitelink extension. + // "MOBILE_APP" - The asset is linked for use as a Mobile App + // extension. + // "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout + // extension. + // "CALL" - The asset is linked for use as a Call extension. + // "PRICE" - The asset is linked for use as a Price extension. + // "LONG_HEADLINE" - The asset is linked for use as a long headline. + // "BUSINESS_NAME" - The asset is linked for use as a business name. + // "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square + // marketing image. + // "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a + // portrait marketing image. + // "LOGO" - The asset is linked for use as a logo. + // "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo. + // "VIDEO" - The asset is linked for use as a non YouTube logo. + // "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select + // a call-to-action. + // "AD_IMAGE" - The asset is linked for use to select an ad image. + ExcludedParentAssetFieldTypes []string `json:"excludedParentAssetFieldTypes,omitempty"` + + // FinalUrlSuffix: Suffix used to append query parameters to landing + // pages that are served with parallel tracking. + FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"` + + // FrequencyCaps: A list that limits how often each user will see this + // campaign's ads. + FrequencyCaps []*GoogleAdsSearchads360V0Common__FrequencyCapEntry `json:"frequencyCaps,omitempty"` + + // GeoTargetTypeSetting: The setting for ads geotargeting. + GeoTargetTypeSetting *GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting `json:"geoTargetTypeSetting,omitempty"` + + // Id: Output only. The ID of the campaign. + Id int64 `json:"id,omitempty,string"` + + // Labels: Output only. The resource names of labels attached to this + // campaign. + Labels []string `json:"labels,omitempty"` + + // LastModifiedTime: Output only. The datetime when this campaign was + // last modified. The datetime is in the customer's time zone and in + // "yyyy-MM-dd HH:mm:ss.ssssss" format. + LastModifiedTime string `json:"lastModifiedTime,omitempty"` + + // ManualCpa: 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. + ManualCpa *GoogleAdsSearchads360V0Common__ManualCpa `json:"manualCpa,omitempty"` + + // ManualCpc: Standard Manual CPC bidding strategy. Manual click-based + // bidding where user pays per click. + ManualCpc *GoogleAdsSearchads360V0Common__ManualCpc `json:"manualCpc,omitempty"` + + // ManualCpm: Standard Manual CPM bidding strategy. Manual + // impression-based bidding where user pays per thousand impressions. + ManualCpm *GoogleAdsSearchads360V0Common__ManualCpm `json:"manualCpm,omitempty"` + + // MaximizeConversionValue: Standard Maximize Conversion Value bidding + // strategy that automatically sets bids to maximize revenue while + // spending your budget. + MaximizeConversionValue *GoogleAdsSearchads360V0Common__MaximizeConversionValue `json:"maximizeConversionValue,omitempty"` + + // MaximizeConversions: Standard Maximize Conversions bidding strategy + // that automatically maximizes number of conversions while spending + // your budget. + MaximizeConversions *GoogleAdsSearchads360V0Common__MaximizeConversions `json:"maximizeConversions,omitempty"` + + // Name: The name of the campaign. This field is required and should not + // be empty when creating new campaigns. It must not contain any null + // (code point 0x0), NL line feed (code point 0xA) or carriage return + // (code point 0xD) characters. + Name string `json:"name,omitempty"` + + // NetworkSettings: The network settings for the campaign. + NetworkSettings *GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings `json:"networkSettings,omitempty"` + + // OptimizationGoalSetting: Optimization goal setting for this campaign, + // which includes a set of optimization goal types. + OptimizationGoalSetting *GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting `json:"optimizationGoalSetting,omitempty"` + + // PercentCpc: Standard Percent Cpc bidding strategy where bids are a + // fraction of the advertised price for some good or service. + PercentCpc *GoogleAdsSearchads360V0Common__PercentCpc `json:"percentCpc,omitempty"` + + // RealTimeBiddingSetting: Settings for Real-Time Bidding, a feature + // only available for campaigns targeting the Ad Exchange network. + RealTimeBiddingSetting *GoogleAdsSearchads360V0Common__RealTimeBiddingSetting `json:"realTimeBiddingSetting,omitempty"` + + // ResourceName: Immutable. The resource name of the campaign. Campaign + // resource names have the form: + // `customers/{customer_id}/campaigns/{campaign_id}` + ResourceName string `json:"resourceName,omitempty"` + + // SelectiveOptimization: Selective optimization setting for this + // campaign, which includes a set of conversion actions to optimize this + // campaign towards. + SelectiveOptimization *GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization `json:"selectiveOptimization,omitempty"` + + // ServingStatus: Output only. The ad serving status of the campaign. + // + // Possible values: + // "UNSPECIFIED" - No value has been specified. + // "UNKNOWN" - The received value is not known in this version. This + // is a response-only value. + // "SERVING" - Serving. + // "NONE" - None. + // "ENDED" - Ended. + // "PENDING" - Pending. + // "SUSPENDED" - Suspended. + ServingStatus string `json:"servingStatus,omitempty"` + + // ShoppingSetting: The setting for controlling Shopping campaigns. + ShoppingSetting *GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting `json:"shoppingSetting,omitempty"` + + // StartDate: The date when campaign started in serving customer's + // timezone in YYYY-MM-DD format. + StartDate string `json:"startDate,omitempty"` + + // Status: The status of the campaign. When a new campaign is added, the + // status defaults to ENABLED. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ENABLED" - Campaign is active and can show ads. + // "PAUSED" - Campaign has been paused by the user. + // "REMOVED" - Campaign has been removed. + Status string `json:"status,omitempty"` + + // TargetCpa: 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. + TargetCpa *GoogleAdsSearchads360V0Common__TargetCpa `json:"targetCpa,omitempty"` + + // TargetCpm: A bidding strategy that automatically optimizes cost per + // thousand impressions. + TargetCpm *GoogleAdsSearchads360V0Common__TargetCpm `json:"targetCpm,omitempty"` + + // TargetImpressionShare: Target Impression Share bidding strategy. An + // automated bidding strategy that sets bids to achieve a chosen + // percentage of impressions. + TargetImpressionShare *GoogleAdsSearchads360V0Common__TargetImpressionShare `json:"targetImpressionShare,omitempty"` + + // TargetRoas: Standard Target ROAS bidding strategy that automatically + // maximizes revenue while averaging a specific target return on ad + // spend (ROAS). + TargetRoas *GoogleAdsSearchads360V0Common__TargetRoas `json:"targetRoas,omitempty"` + + // TargetSpend: Standard Target Spend bidding strategy that + // automatically sets your bids to help get as many clicks as possible + // within your budget. + TargetSpend *GoogleAdsSearchads360V0Common__TargetSpend `json:"targetSpend,omitempty"` + + // TrackingSetting: Output only. Campaign-level settings for tracking + // information. + TrackingSetting *GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting `json:"trackingSetting,omitempty"` + + // TrackingUrlTemplate: The URL template for constructing a tracking + // URL. + TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"` + + // UrlCustomParameters: The list of mappings used to substitute custom + // parameter tags in a `tracking_url_template`, `final_urls`, or + // `mobile_final_urls`. + UrlCustomParameters []*GoogleAdsSearchads360V0Common__CustomParameter `json:"urlCustomParameters,omitempty"` + + // UrlExpansionOptOut: Represents opting out of URL expansion to more + // targeted URLs. If opted out (true), only the final URLs in the asset + // group or URLs specified in the advertiser's Google Merchant Center or + // business data feeds are targeted. If opted in (false), the entire + // domain will be targeted. This field can only be set for Performance + // Max campaigns, where the default value is false. + UrlExpansionOptOut bool `json:"urlExpansionOptOut,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AdServingOptimizationStatus") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "AdServingOptimizationStatus") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__Campaign) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__Campaign + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__CampaignBudget: A campaign budget. +type GoogleAdsSearchads360V0Resources__CampaignBudget struct { + // AmountMicros: The amount of the budget, in the local currency for the + // account. Amount is specified in micros, where one million is + // equivalent to one currency unit. Monthly spend is capped at 30.4 + // times this amount. + AmountMicros int64 `json:"amountMicros,omitempty,string"` + + // DeliveryMethod: The delivery method that determines the rate at which + // the campaign budget is spent. Defaults to STANDARD if unspecified in + // a create operation. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "STANDARD" - The budget server will throttle serving evenly across + // the entire time period. + // "ACCELERATED" - The budget server will not throttle serving, and + // ads will serve as fast as possible. + DeliveryMethod string `json:"deliveryMethod,omitempty"` + + // Period: Immutable. Period over which to spend the budget. Defaults to + // DAILY if not specified. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "DAILY" - Daily budget. + // "FIXED_DAILY" - Fixed daily budget. + // "CUSTOM_PERIOD" - Custom budget, added back in V5. Custom bugdet + // can be used with total_amount to specify lifetime budget limit. + Period string `json:"period,omitempty"` + + // ResourceName: Immutable. The resource name of the campaign budget. + // Campaign budget resource names have the form: + // `customers/{customer_id}/campaignBudgets/{campaign_budget_id}` + ResourceName string `json:"resourceName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AmountMicros") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AmountMicros") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__CampaignBudget) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__CampaignBudget + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__CampaignCriterion: A campaign +// criterion. +type GoogleAdsSearchads360V0Resources__CampaignCriterion struct { + // BidModifier: The modifier for the bids when the criterion matches. + // The modifier must be in the range: 0.1 - 10.0. Most targetable + // criteria types support modifiers. Use 0 to opt out of a Device type. + BidModifier float64 `json:"bidModifier,omitempty"` + + // CriterionId: Output only. The ID of the criterion. This field is + // ignored during mutate. + CriterionId int64 `json:"criterionId,omitempty,string"` + + // Device: Immutable. Device. + Device *GoogleAdsSearchads360V0Common__DeviceInfo `json:"device,omitempty"` + + // DisplayName: Output only. The display name of the criterion. This + // field is ignored for mutates. + DisplayName string `json:"displayName,omitempty"` + + // Language: Immutable. Language. + Language *GoogleAdsSearchads360V0Common__LanguageInfo `json:"language,omitempty"` + + // Location: Immutable. Location. + Location *GoogleAdsSearchads360V0Common__LocationInfo `json:"location,omitempty"` + + // LocationGroup: Immutable. Location Group + LocationGroup *GoogleAdsSearchads360V0Common__LocationGroupInfo `json:"locationGroup,omitempty"` + + // Negative: Immutable. Whether to target (`false`) or exclude (`true`) + // the criterion. + Negative bool `json:"negative,omitempty"` + + // ResourceName: Immutable. The resource name of the campaign criterion. + // Campaign criterion resource names have the form: + // `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id} + // ` + ResourceName string `json:"resourceName,omitempty"` + + // Type: Output only. The type of the criterion. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "KEYWORD" - Keyword, for example, 'mars cruise'. + // "PLACEMENT" - Placement, also known as Website, for example, + // 'www.flowers4sale.com' + // "MOBILE_APP_CATEGORY" - Mobile application categories to target. + // "MOBILE_APPLICATION" - Mobile applications to target. + // "DEVICE" - Devices to target. + // "LOCATION" - Locations to target. + // "LISTING_GROUP" - Listing groups to target. + // "AD_SCHEDULE" - Ad Schedule. + // "AGE_RANGE" - Age range. + // "GENDER" - Gender. + // "INCOME_RANGE" - Income Range. + // "PARENTAL_STATUS" - Parental status. + // "YOUTUBE_VIDEO" - YouTube Video. + // "YOUTUBE_CHANNEL" - YouTube Channel. + // "USER_LIST" - User list. + // "PROXIMITY" - Proximity. + // "TOPIC" - A topic target on the display network (for example, "Pets + // & Animals"). + // "LISTING_SCOPE" - Listing scope to target. + // "LANGUAGE" - Language. + // "IP_BLOCK" - IpBlock. + // "CONTENT_LABEL" - Content Label for category exclusion. + // "CARRIER" - Carrier. + // "USER_INTEREST" - A category the user is interested in. + // "WEBPAGE" - Webpage criterion for dynamic search ads. + // "OPERATING_SYSTEM_VERSION" - Operating system version. + // "APP_PAYMENT_MODEL" - App payment model. + // "MOBILE_DEVICE" - Mobile device. + // "CUSTOM_AFFINITY" - Custom affinity. + // "CUSTOM_INTENT" - Custom intent. + // "LOCATION_GROUP" - Location group. + // "CUSTOM_AUDIENCE" - Custom audience + // "COMBINED_AUDIENCE" - Combined audience + // "KEYWORD_THEME" - Smart Campaign keyword theme + // "AUDIENCE" - Audience + // "LOCAL_SERVICE_ID" - Google Local Services (GLS) Service ID. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BidModifier") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BidModifier") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__CampaignCriterion) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__CampaignCriterion + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleAdsSearchads360V0Resources__CampaignCriterion) UnmarshalJSON(data []byte) error { + type NoMethod GoogleAdsSearchads360V0Resources__CampaignCriterion + var s1 struct { + BidModifier gensupport.JSONFloat64 `json:"bidModifier"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.BidModifier = float64(s1.BidModifier) + return nil +} + +// GoogleAdsSearchads360V0Resources__ConversionAction: A conversion +// action. +type GoogleAdsSearchads360V0Resources__ConversionAction struct { + // AppId: App ID for an app conversion action. + AppId string `json:"appId,omitempty"` + + // AttributionModelSettings: Settings related to this conversion + // action's attribution model. + AttributionModelSettings *GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings `json:"attributionModelSettings,omitempty"` + + // Category: The category of conversions reported for this conversion + // action. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "DEFAULT" - Default category. + // "PAGE_VIEW" - User visiting a page. + // "PURCHASE" - Purchase, sales, or "order placed" event. + // "SIGNUP" - Signup user action. + // "LEAD" - Lead-generating action. + // "DOWNLOAD" - Software download action (as for an app). + // "ADD_TO_CART" - The addition of items to a shopping cart or bag on + // an advertiser site. + // "BEGIN_CHECKOUT" - When someone enters the checkout flow on an + // advertiser site. + // "SUBSCRIBE_PAID" - The start of a paid subscription for a product + // or service. + // "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's + // offering. + // "IMPORTED_LEAD" - A lead conversion imported from an external + // source into Google Ads. + // "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site + // indicating business interest. + // "BOOK_APPOINTMENT" - A booking of an appointment with an + // advertiser's business. + // "REQUEST_QUOTE" - A quote or price estimate request. + // "GET_DIRECTIONS" - A search for an advertiser's business location + // with intention to visit. + // "OUTBOUND_CLICK" - A click to an advertiser's partner's site. + // "CONTACT" - A call, SMS, email, chat or other type of contact to an + // advertiser. + // "ENGAGEMENT" - A website engagement event such as long site time or + // a Google Analytics (GA) Smart Goal. Intended to be used for GA, + // Firebase, GA Gold goal imports. + // "STORE_VISIT" - A visit to a physical store location. + // "STORE_SALE" - A sale occurring in a physical store. + // "QUALIFIED_LEAD" - A lead conversion imported from an external + // source into Google Ads, that has been further qualified by the + // advertiser (marketing/sales team). In the lead-to-sale journey, + // advertisers get leads, then act on them by reaching out to the + // consumer. If the consumer is interested and may end up buying their + // product, the advertiser marks such leads as "qualified leads". + // "CONVERTED_LEAD" - A lead conversion imported from an external + // source into Google Ads, that has further completed a chosen stage as + // defined by the lead gen advertiser. + Category string `json:"category,omitempty"` + + // ClickThroughLookbackWindowDays: The maximum number of days that may + // elapse between an interaction (for example, a click) and a conversion + // event. + ClickThroughLookbackWindowDays int64 `json:"clickThroughLookbackWindowDays,omitempty,string"` + + // CreationTime: Output only. Timestamp of the Floodlight activity's + // creation, formatted in ISO 8601. + CreationTime string `json:"creationTime,omitempty"` + + // FloodlightSettings: Output only. Floodlight settings for Floodlight + // conversion types. + FloodlightSettings *GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings `json:"floodlightSettings,omitempty"` + + // Id: Output only. The ID of the conversion action. + Id int64 `json:"id,omitempty,string"` + + // IncludeInClientAccountConversionsMetric: Whether this conversion + // action should be included in the "client_account_conversions" metric. + IncludeInClientAccountConversionsMetric bool `json:"includeInClientAccountConversionsMetric,omitempty"` + + // IncludeInConversionsMetric: Output only. Whether this conversion + // action should be included in the "conversions" metric. + IncludeInConversionsMetric bool `json:"includeInConversionsMetric,omitempty"` + + // Name: The name of the conversion action. This field is required and + // should not be empty when creating new conversion actions. + Name string `json:"name,omitempty"` + + // OwnerCustomer: Output only. The resource name of the conversion + // action owner customer, or null if this is a system-defined conversion + // action. + OwnerCustomer string `json:"ownerCustomer,omitempty"` + + // PrimaryForGoal: If a conversion action's primary_for_goal bit is + // false, the conversion action is non-biddable for all campaigns + // regardless of their customer conversion goal or campaign conversion + // goal. However, custom conversion goals do not respect + // primary_for_goal, so if a campaign has a custom conversion goal + // configured with a primary_for_goal = false conversion action, that + // conversion action is still biddable. By default, primary_for_goal + // will be true if not set. In V9, primary_for_goal can only be set to + // false after creation through an 'update' operation because it's not + // declared as optional. + PrimaryForGoal bool `json:"primaryForGoal,omitempty"` + + // ResourceName: Immutable. The resource name of the conversion action. + // Conversion action resource names have the form: + // `customers/{customer_id}/conversionActions/{conversion_action_id}` + ResourceName string `json:"resourceName,omitempty"` + + // Status: The status of this conversion action for conversion event + // accrual. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ENABLED" - Conversions will be recorded. + // "REMOVED" - Conversions will not be recorded. + // "HIDDEN" - Conversions will not be recorded and the conversion + // action will not appear in the UI. + Status string `json:"status,omitempty"` + + // Type: Immutable. The type of this conversion action. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "AD_CALL" - Conversions that occur when a user clicks on an ad's + // call extension. + // "CLICK_TO_CALL" - Conversions that occur when a user on a mobile + // device clicks a phone number. + // "GOOGLE_PLAY_DOWNLOAD" - Conversions that occur when a user + // downloads a mobile app from the Google Play Store. + // "GOOGLE_PLAY_IN_APP_PURCHASE" - Conversions that occur when a user + // makes a purchase in an app through Android billing. + // "UPLOAD_CALLS" - Call conversions that are tracked by the + // advertiser and uploaded. + // "UPLOAD_CLICKS" - Conversions that are tracked by the advertiser + // and uploaded with attributed clicks. + // "WEBPAGE" - Conversions that occur on a webpage. + // "WEBSITE_CALL" - Conversions that occur when a user calls a + // dynamically-generated phone number from an advertiser's website. + // "STORE_SALES_DIRECT_UPLOAD" - Store Sales conversion based on + // first-party or third-party merchant data uploads. Only customers on + // the allowlist can use store sales direct upload types. + // "STORE_SALES" - Store Sales conversion based on first-party or + // third-party merchant data uploads and/or from in-store purchases + // using cards from payment networks. Only customers on the allowlist + // can use store sales types. Read only. + // "FIREBASE_ANDROID_FIRST_OPEN" - Android app first open conversions + // tracked through Firebase. + // "FIREBASE_ANDROID_IN_APP_PURCHASE" - Android app in app purchase + // conversions tracked through Firebase. + // "FIREBASE_ANDROID_CUSTOM" - Android app custom conversions tracked + // through Firebase. + // "FIREBASE_IOS_FIRST_OPEN" - iOS app first open conversions tracked + // through Firebase. + // "FIREBASE_IOS_IN_APP_PURCHASE" - iOS app in app purchase + // conversions tracked through Firebase. + // "FIREBASE_IOS_CUSTOM" - iOS app custom conversions tracked through + // Firebase. + // "THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN" - Android app first + // open conversions tracked through Third Party App Analytics. + // "THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE" - Android app + // in app purchase conversions tracked through Third Party App + // Analytics. + // "THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM" - Android app custom + // conversions tracked through Third Party App Analytics. + // "THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN" - iOS app first open + // conversions tracked through Third Party App Analytics. + // "THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE" - iOS app in app + // purchase conversions tracked through Third Party App Analytics. + // "THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM" - iOS app custom conversions + // tracked through Third Party App Analytics. + // "ANDROID_APP_PRE_REGISTRATION" - Conversions that occur when a user + // pre-registers a mobile app from the Google Play Store. Read only. + // "ANDROID_INSTALLS_ALL_OTHER_APPS" - Conversions that track all + // Google Play downloads which aren't tracked by an app-specific type. + // Read only. + // "FLOODLIGHT_ACTION" - Floodlight activity that counts the number of + // times that users have visited a particular webpage after seeing or + // clicking on one of an advertiser's ads. Read only. + // "FLOODLIGHT_TRANSACTION" - Floodlight activity that tracks the + // number of sales made or the number of items purchased. Can also + // capture the total value of each sale. Read only. + // "GOOGLE_HOSTED" - Conversions that track local actions from + // Google's products and services after interacting with an ad. Read + // only. + // "LEAD_FORM_SUBMIT" - Conversions reported when a user submits a + // lead form. Read only. + // "SALESFORCE" - Conversions that come from Salesforce. Read only. + // "SEARCH_ADS_360" - Conversions imported from Search Ads 360 + // Floodlight data. Read only. + // "SMART_CAMPAIGN_AD_CLICKS_TO_CALL" - Call conversions that occur on + // Smart campaign Ads without call tracking setup, using Smart campaign + // custom criteria. Read only. + // "SMART_CAMPAIGN_MAP_CLICKS_TO_CALL" - The user clicks on a call + // element within Google Maps. Smart campaign only. Read only. + // "SMART_CAMPAIGN_MAP_DIRECTIONS" - The user requests directions to a + // business location within Google Maps. Smart campaign only. Read only. + // "SMART_CAMPAIGN_TRACKED_CALLS" - Call conversions that occur on + // Smart campaign Ads with call tracking setup, using Smart campaign + // custom criteria. Read only. + // "STORE_VISITS" - Conversions that occur when a user visits an + // advertiser's retail store. Read only. + Type string `json:"type,omitempty"` + + // ValueSettings: Settings related to the value for conversion events + // associated with this conversion action. + ValueSettings *GoogleAdsSearchads360V0ResourcesConversionActionValueSettings `json:"valueSettings,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AppId") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AppId") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__ConversionAction) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__ConversionAction + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__ConversionTrackingSetting: A +// collection of customer-wide settings related to Search Ads 360 +// Conversion Tracking. +type GoogleAdsSearchads360V0Resources__ConversionTrackingSetting struct { + // AcceptedCustomerDataTerms: Output only. Whether the customer has + // accepted customer data terms. If using cross-account conversion + // tracking, this value is inherited from the manager. This field is + // read-only. For more information, see + // https://support.google.com/adspolicy/answer/7475709. + AcceptedCustomerDataTerms bool `json:"acceptedCustomerDataTerms,omitempty"` + + // ConversionTrackingId: Output only. The conversion tracking id used + // for this account. This id doesn't indicate whether the customer uses + // conversion tracking (conversion_tracking_status does). This field is + // read-only. + ConversionTrackingId int64 `json:"conversionTrackingId,omitempty,string"` + + // ConversionTrackingStatus: Output only. Conversion tracking status. It + // indicates whether the customer is using conversion tracking, and who + // is the conversion tracking owner of this customer. If this customer + // is using cross-account conversion tracking, the value returned will + // differ based on the `login-customer-id` of the request. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "NOT_CONVERSION_TRACKED" - Customer does not use any conversion + // tracking. + // "CONVERSION_TRACKING_MANAGED_BY_SELF" - The conversion actions are + // created and managed by this customer. + // "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER" - The conversion + // actions are created and managed by the manager specified in the + // request's `login-customer-id`. + // "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER" - The conversion + // actions are created and managed by a manager different from the + // customer or manager specified in the request's `login-customer-id`. + ConversionTrackingStatus string `json:"conversionTrackingStatus,omitempty"` + + // CrossAccountConversionTrackingId: Output only. The conversion + // tracking id of the customer's manager. This is set when the customer + // is opted into cross-account conversion tracking, and it overrides + // conversion_tracking_id. + CrossAccountConversionTrackingId int64 `json:"crossAccountConversionTrackingId,omitempty,string"` + + // EnhancedConversionsForLeadsEnabled: Output only. Whether the customer + // is opted-in for enhanced conversions for leads. If using + // cross-account conversion tracking, this value is inherited from the + // manager. This field is read-only. + EnhancedConversionsForLeadsEnabled bool `json:"enhancedConversionsForLeadsEnabled,omitempty"` + + // GoogleAdsConversionCustomer: Output only. The resource name of the + // customer where conversions are created and managed. This field is + // read-only. + GoogleAdsConversionCustomer string `json:"googleAdsConversionCustomer,omitempty"` + + // GoogleAdsCrossAccountConversionTrackingId: Output only. The + // conversion tracking id of the customer's manager. This is set when + // the customer is opted into conversion tracking, and it overrides + // conversion_tracking_id. This field can only be managed through the + // Google Ads UI. This field is read-only. + GoogleAdsCrossAccountConversionTrackingId int64 `json:"googleAdsCrossAccountConversionTrackingId,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. + // "AcceptedCustomerDataTerms") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "AcceptedCustomerDataTerms") to include in API requests with the JSON + // null value. By default, fields with empty values are omitted from API + // requests. However, any field with an empty value appearing in + // NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__ConversionTrackingSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__ConversionTrackingSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__CustomColumn: A custom column. See +// Search Ads 360 custom column at +// https://support.google.com/sa360/answer/9633916 +type GoogleAdsSearchads360V0Resources__CustomColumn struct { + // Description: Output only. User-defined description of the custom + // column. + Description string `json:"description,omitempty"` + + // Id: Output only. ID of the custom column. + Id int64 `json:"id,omitempty,string"` + + // Name: Output only. User-defined name of the custom column. + Name string `json:"name,omitempty"` + + // Queryable: Output only. True when the custom column is available to + // be used in the query of SearchAds360Service.Search and + // SearchAds360Service.SearchStream. + Queryable bool `json:"queryable,omitempty"` + + // ReferencedSystemColumns: Output only. The list of the referenced + // system columns of this custom column. For example, A custom column + // "sum of impressions and clicks" has referenced system columns of + // {"metrics.clicks", "metrics.impressions"}. + ReferencedSystemColumns []string `json:"referencedSystemColumns,omitempty"` + + // ReferencesAttributes: Output only. True when the custom column is + // referring to one or more attributes. + ReferencesAttributes bool `json:"referencesAttributes,omitempty"` + + // ReferencesMetrics: Output only. True when the custom column is + // referring to one or more metrics. + ReferencesMetrics bool `json:"referencesMetrics,omitempty"` + + // ResourceName: Immutable. The resource name of the custom column. + // Custom column resource names have the form: + // `customers/{customer_id}/customColumns/{custom_column_id}` + ResourceName string `json:"resourceName,omitempty"` + + // ValueType: Output only. The type of the result value of the custom + // column. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Unknown. + // "STRING" - The custom column value is a string. + // "INT64" - The custom column value is an int64 number. + // "DOUBLE" - The custom column value is a double number. + // "BOOLEAN" - The custom column value is a boolean. + ValueType string `json:"valueType,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Description") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__CustomColumn) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__CustomColumn + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__Customer: A customer. +type GoogleAdsSearchads360V0Resources__Customer struct { + // AccountStatus: Output only. Account status, for example, Enabled, + // Paused, Removed, etc. + // + // Possible values: + // "UNSPECIFIED" - Default value. + // "UNKNOWN" - Unknown value. + // "ENABLED" - Account is able to serve ads. + // "PAUSED" - Account is deactivated by the user. + // "SUSPENDED" - Account is deactivated by an internal process. + // "REMOVED" - Account is irrevocably deactivated. + // "DRAFT" - Account is still in the process of setup, not ENABLED + // yet. + AccountStatus string `json:"accountStatus,omitempty"` + + // AccountType: Output only. Engine account type, for example, Google + // Ads, Microsoft Advertising, Yahoo Japan, Baidu, Facebook, Engine + // Track, etc. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "BAIDU" - Baidu account. + // "ENGINE_TRACK" - Engine track account. + // "FACEBOOK" - Facebook account. + // "FACEBOOK_GATEWAY" - Facebook account managed through gateway. + // "GOOGLE_ADS" - Google Ads account. + // "MICROSOFT" - Microsoft Advertising account. + // "SEARCH_ADS_360" - Search Ads 360 manager account. + // "YAHOO_JAPAN" - Yahoo Japan account. + AccountType string `json:"accountType,omitempty"` + + // AutoTaggingEnabled: Whether auto-tagging is enabled for the customer. + AutoTaggingEnabled bool `json:"autoTaggingEnabled,omitempty"` + + // ConversionTrackingSetting: Output only. Conversion tracking setting + // for a customer. + ConversionTrackingSetting *GoogleAdsSearchads360V0Resources__ConversionTrackingSetting `json:"conversionTrackingSetting,omitempty"` + + // CurrencyCode: Immutable. The currency in which the account operates. + // A subset of the currency codes from the ISO 4217 standard is + // supported. + CurrencyCode string `json:"currencyCode,omitempty"` + + // DescriptiveName: Optional, non-unique descriptive name of the + // customer. + DescriptiveName string `json:"descriptiveName,omitempty"` + + // DoubleClickCampaignManagerSetting: Output only. DoubleClick Campaign + // Manager (DCM) setting for a manager customer. + DoubleClickCampaignManagerSetting *GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting `json:"doubleClickCampaignManagerSetting,omitempty"` + + // EngineId: Output only. ID of the account in the external engine + // account. + EngineId string `json:"engineId,omitempty"` + + // FinalUrlSuffix: The URL template for appending params to the final + // URL + FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"` + + // Id: Output only. The ID of the customer. + Id int64 `json:"id,omitempty,string"` + + // LastModifiedTime: Output only. The datetime when this customer was + // last modified. The datetime is in the customer's time zone and in + // "yyyy-MM-dd HH:mm:ss.ssssss" format. + LastModifiedTime string `json:"lastModifiedTime,omitempty"` + + // Manager: Output only. Whether the customer is a manager. + Manager bool `json:"manager,omitempty"` + + // ResourceName: Immutable. The resource name of the customer. Customer + // resource names have the form: `customers/{customer_id}` + ResourceName string `json:"resourceName,omitempty"` + + // Status: Output only. The status of the customer. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ENABLED" - Indicates an active account able to serve ads. + // "CANCELED" - Indicates a canceled account unable to serve ads. Can + // be reactivated by an admin user. + // "SUSPENDED" - Indicates a suspended account unable to serve ads. + // May only be activated by Google support. + // "CLOSED" - Indicates a closed account unable to serve ads. Test + // account will also have CLOSED status. Status is permanent and may not + // be reopened. + Status string `json:"status,omitempty"` + + // TimeZone: Immutable. The local timezone ID of the customer. + TimeZone string `json:"timeZone,omitempty"` + + // TrackingUrlTemplate: The URL template for constructing a tracking URL + // out of parameters. + TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AccountStatus") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AccountStatus") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__Customer) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__Customer + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__CustomerClient: A link between the +// given customer and a client customer. CustomerClients only exist for +// manager customers. All direct and indirect client customers are +// included, as well as the manager itself. +type GoogleAdsSearchads360V0Resources__CustomerClient struct { + // AppliedLabels: Output only. The resource names of the labels owned by + // the requesting customer that are applied to the client customer. + // Label resource names have the form: + // `customers/{customer_id}/labels/{label_id}` + AppliedLabels []string `json:"appliedLabels,omitempty"` + + // ClientCustomer: Output only. The resource name of the client-customer + // which is linked to the given customer. Read only. + ClientCustomer string `json:"clientCustomer,omitempty"` + + // CurrencyCode: Output only. Currency code (for example, 'USD', 'EUR') + // for the client. Read only. + CurrencyCode string `json:"currencyCode,omitempty"` + + // DescriptiveName: Output only. Descriptive name for the client. Read + // only. + DescriptiveName string `json:"descriptiveName,omitempty"` + + // Hidden: Output only. Specifies whether this is a hidden account. Read + // only. + Hidden bool `json:"hidden,omitempty"` + + // Id: Output only. The ID of the client customer. Read only. + Id int64 `json:"id,omitempty,string"` + + // Level: Output only. Distance between given customer and client. For + // self link, the level value will be 0. Read only. + Level int64 `json:"level,omitempty,string"` + + // Manager: Output only. Identifies if the client is a manager. Read + // only. + Manager bool `json:"manager,omitempty"` + + // ResourceName: Output only. The resource name of the customer client. + // CustomerClient resource names have the form: + // `customers/{customer_id}/customerClients/{client_customer_id}` + ResourceName string `json:"resourceName,omitempty"` + + // Status: Output only. The status of the client customer. Read only. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ENABLED" - Indicates an active account able to serve ads. + // "CANCELED" - Indicates a canceled account unable to serve ads. Can + // be reactivated by an admin user. + // "SUSPENDED" - Indicates a suspended account unable to serve ads. + // May only be activated by Google support. + // "CLOSED" - Indicates a closed account unable to serve ads. Test + // account will also have CLOSED status. Status is permanent and may not + // be reopened. + Status string `json:"status,omitempty"` + + // TestAccount: Output only. Identifies if the client is a test account. + // Read only. + TestAccount bool `json:"testAccount,omitempty"` + + // TimeZone: Output only. Common Locale Data Repository (CLDR) string + // representation of the time zone of the client, for example, + // America/Los_Angeles. Read only. + TimeZone string `json:"timeZone,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AppliedLabels") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AppliedLabels") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__CustomerClient) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__CustomerClient + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__CustomerManagerLink: Represents +// customer-manager link relationship. +type GoogleAdsSearchads360V0Resources__CustomerManagerLink struct { + // ManagerCustomer: Output only. The manager customer linked to the + // customer. + ManagerCustomer string `json:"managerCustomer,omitempty"` + + // ManagerLinkId: Output only. ID of the customer-manager link. This + // field is read only. + ManagerLinkId int64 `json:"managerLinkId,omitempty,string"` + + // ResourceName: Immutable. Name of the resource. CustomerManagerLink + // resource names have the form: + // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{m + // anager_link_id}` + ResourceName string `json:"resourceName,omitempty"` + + // Status: Status of the link between the customer and the manager. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Used for return value only. Represents value unknown in + // this version. + // "ACTIVE" - Indicates current in-effect relationship + // "INACTIVE" - Indicates terminated relationship + // "PENDING" - Indicates relationship has been requested by manager, + // but the client hasn't accepted yet. + // "REFUSED" - Relationship was requested by the manager, but the + // client has refused. + // "CANCELED" - Indicates relationship has been requested by manager, + // but manager canceled it. + Status string `json:"status,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ManagerCustomer") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ManagerCustomer") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__CustomerManagerLink) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__CustomerManagerLink + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting: +// DoubleClick Campaign Manager (DCM) setting for a manager customer. +type GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting struct { + // AdvertiserId: Output only. ID of the Campaign Manager advertiser + // associated with this customer. + AdvertiserId int64 `json:"advertiserId,omitempty,string"` + + // NetworkId: Output only. ID of the Campaign Manager network associated + // with this customer. + NetworkId int64 `json:"networkId,omitempty,string"` + + // TimeZone: Output only. Time zone of the Campaign Manager network + // associated with this customer in IANA Time Zone Database format, such + // as America/New_York. + TimeZone string `json:"timeZone,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AdvertiserId") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdvertiserId") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__KeywordView: A keyword view. +type GoogleAdsSearchads360V0Resources__KeywordView struct { + // ResourceName: Output only. The resource name of the keyword view. + // Keyword view resource names have the form: + // `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}` + ResourceName string `json:"resourceName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ResourceName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ResourceName") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__KeywordView) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__KeywordView + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__ProductGroupView: A product group +// view. +type GoogleAdsSearchads360V0Resources__ProductGroupView struct { + // ResourceName: Output only. The resource name of the product group + // view. Product group view resource names have the form: + // `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id + // }` + ResourceName string `json:"resourceName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ResourceName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ResourceName") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__ProductGroupView) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__ProductGroupView + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Resources__SearchAds360Field: A field or +// resource (artifact) used by SearchAds360Service. +type GoogleAdsSearchads360V0Resources__SearchAds360Field struct { + // AttributeResources: Output only. The names of all resources that are + // selectable with the described artifact. Fields from these resources + // do not segment metrics when included in search queries. This field is + // only set for artifacts whose category is RESOURCE. + AttributeResources []string `json:"attributeResources,omitempty"` + + // Category: Output only. The category of the artifact. + // + // Possible values: + // "UNSPECIFIED" - Unspecified + // "UNKNOWN" - Unknown + // "RESOURCE" - The described artifact is a resource. + // "ATTRIBUTE" - The described artifact is a field and is an attribute + // of a resource. Including a resource attribute field in a query may + // segment the query if the resource to which it is attributed segments + // the resource found in the FROM clause. + // "SEGMENT" - The described artifact is a field and always segments + // search queries. + // "METRIC" - The described artifact is a field and is a metric. It + // never segments search queries. + Category string `json:"category,omitempty"` + + // DataType: Output only. This field determines the operators that can + // be used with the artifact in WHERE clauses. + // + // Possible values: + // "UNSPECIFIED" - Unspecified + // "UNKNOWN" - Unknown + // "BOOLEAN" - Maps to google.protobuf.BoolValue Applicable operators: + // =, != + // "DATE" - Maps to google.protobuf.StringValue. It can be compared + // using the set of operators specific to dates however. Applicable + // operators: =, <, >, <=, >=, BETWEEN, DURING, and IN + // "DOUBLE" - Maps to google.protobuf.DoubleValue Applicable + // operators: =, !=, <, >, IN, NOT IN + // "ENUM" - Maps to an enum. It's specific definition can be found at + // type_url. Applicable operators: =, !=, IN, NOT IN + // "FLOAT" - Maps to google.protobuf.FloatValue Applicable operators: + // =, !=, <, >, IN, NOT IN + // "INT32" - Maps to google.protobuf.Int32Value Applicable operators: + // =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + // "INT64" - Maps to google.protobuf.Int64Value Applicable operators: + // =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + // "MESSAGE" - Maps to a protocol buffer message type. The data type's + // details can be found in type_url. No operators work with MESSAGE + // fields. + // "RESOURCE_NAME" - Maps to google.protobuf.StringValue. Represents + // the resource name (unique id) of a resource or one of its foreign + // keys. No operators work with RESOURCE_NAME fields. + // "STRING" - Maps to google.protobuf.StringValue. Applicable + // operators: =, !=, LIKE, NOT LIKE, IN, NOT IN + // "UINT64" - Maps to google.protobuf.UInt64Value Applicable + // operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + DataType string `json:"dataType,omitempty"` + + // EnumValues: Output only. Values the artifact can assume if it is a + // field of type ENUM. This field is only set for artifacts of category + // SEGMENT or ATTRIBUTE. + EnumValues []string `json:"enumValues,omitempty"` + + // Filterable: Output only. Whether the artifact can be used in a WHERE + // clause in search queries. + Filterable bool `json:"filterable,omitempty"` + + // IsRepeated: Output only. Whether the field artifact is repeated. + IsRepeated bool `json:"isRepeated,omitempty"` + + // Metrics: Output only. This field lists the names of all metrics that + // are selectable with the described artifact when it is used in the + // FROM clause. It is only set for artifacts whose category is RESOURCE. + Metrics []string `json:"metrics,omitempty"` + + // Name: Output only. The name of the artifact. + Name string `json:"name,omitempty"` + + // ResourceName: Output only. The resource name of the artifact. + // Artifact resource names have the form: `SearchAds360Fields/{name}` + ResourceName string `json:"resourceName,omitempty"` + + // Segments: Output only. This field lists the names of all artifacts, + // whether a segment or another resource, that segment metrics when + // included in search queries and when the described artifact is used in + // the FROM clause. It is only set for artifacts whose category is + // RESOURCE. + Segments []string `json:"segments,omitempty"` + + // Selectable: Output only. Whether the artifact can be used in a SELECT + // clause in search queries. + Selectable bool `json:"selectable,omitempty"` + + // SelectableWith: Output only. The names of all resources, segments, + // and metrics that are selectable with the described artifact. + SelectableWith []string `json:"selectableWith,omitempty"` + + // Sortable: Output only. Whether the artifact can be used in a ORDER BY + // clause in search queries. + Sortable bool `json:"sortable,omitempty"` + + // TypeUrl: Output only. The URL of proto describing the artifact's data + // type. + TypeUrl string `json:"typeUrl,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "AttributeResources") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AttributeResources") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Resources__SearchAds360Field) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Resources__SearchAds360Field + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__CustomColumnHeader: Message for +// custom column header. +type GoogleAdsSearchads360V0Services__CustomColumnHeader struct { + // Id: The custom column ID. + Id int64 `json:"id,omitempty,string"` + + // Name: The user defined name of the custom column. + Name string `json:"name,omitempty"` + + // ReferencesMetrics: True when the custom column references metrics. + ReferencesMetrics bool `json:"referencesMetrics,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Id") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Id") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__CustomColumnHeader) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__CustomColumnHeader + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__ListCustomColumnsResponse: Response +// message for fetching all custom columns associated with a customer. +type GoogleAdsSearchads360V0Services__ListCustomColumnsResponse struct { + // CustomColumns: The CustomColumns owned by the provided customer. + CustomColumns []*GoogleAdsSearchads360V0Resources__CustomColumn `json:"customColumns,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CustomColumns") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CustomColumns") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__ListCustomColumnsResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__ListCustomColumnsResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__SearchAds360Row: A returned row from +// the query. +type GoogleAdsSearchads360V0Services__SearchAds360Row struct { + // AdGroup: The ad group referenced in the query. + AdGroup *GoogleAdsSearchads360V0Resources__AdGroup `json:"adGroup,omitempty"` + + // AdGroupBidModifier: The bid modifier referenced in the query. + AdGroupBidModifier *GoogleAdsSearchads360V0Resources__AdGroupBidModifier `json:"adGroupBidModifier,omitempty"` + + // AdGroupCriterion: The criterion referenced in the query. + AdGroupCriterion *GoogleAdsSearchads360V0Resources__AdGroupCriterion `json:"adGroupCriterion,omitempty"` + + // BiddingStrategy: The bidding strategy referenced in the query. + BiddingStrategy *GoogleAdsSearchads360V0Resources__BiddingStrategy `json:"biddingStrategy,omitempty"` + + // Campaign: The campaign referenced in the query. + Campaign *GoogleAdsSearchads360V0Resources__Campaign `json:"campaign,omitempty"` + + // CampaignBudget: The campaign budget referenced in the query. + CampaignBudget *GoogleAdsSearchads360V0Resources__CampaignBudget `json:"campaignBudget,omitempty"` + + // CampaignCriterion: The campaign criterion referenced in the query. + CampaignCriterion *GoogleAdsSearchads360V0Resources__CampaignCriterion `json:"campaignCriterion,omitempty"` + + // ConversionAction: The conversion action referenced in the query. + ConversionAction *GoogleAdsSearchads360V0Resources__ConversionAction `json:"conversionAction,omitempty"` + + // CustomColumns: The custom columns. + CustomColumns []*GoogleAdsSearchads360V0Common__Value `json:"customColumns,omitempty"` + + // Customer: The customer referenced in the query. + Customer *GoogleAdsSearchads360V0Resources__Customer `json:"customer,omitempty"` + + // CustomerClient: The CustomerClient referenced in the query. + CustomerClient *GoogleAdsSearchads360V0Resources__CustomerClient `json:"customerClient,omitempty"` + + // CustomerManagerLink: The CustomerManagerLink referenced in the query. + CustomerManagerLink *GoogleAdsSearchads360V0Resources__CustomerManagerLink `json:"customerManagerLink,omitempty"` + + // KeywordView: The keyword view referenced in the query. + KeywordView *GoogleAdsSearchads360V0Resources__KeywordView `json:"keywordView,omitempty"` + + // Metrics: The metrics. + Metrics *GoogleAdsSearchads360V0Common__Metrics `json:"metrics,omitempty"` + + // ProductGroupView: The product group view referenced in the query. + ProductGroupView *GoogleAdsSearchads360V0Resources__ProductGroupView `json:"productGroupView,omitempty"` + + // Segments: The segments. + Segments *GoogleAdsSearchads360V0Common__Segments `json:"segments,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AdGroup") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdGroup") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__SearchAds360Row) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__SearchAds360Row + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest: +// Request message for +// SearchAds360FieldService.SearchSearchAds360Fields. +type GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest struct { + // PageSize: Number of elements to retrieve in a single page. When too + // large a page is requested, the server may decide to further limit the + // number of returned resources. + PageSize int64 `json:"pageSize,omitempty"` + + // PageToken: Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request the + // next page of results. + PageToken string `json:"pageToken,omitempty"` + + // Query: Required. The query string. + Query string `json:"query,omitempty"` + + // ForceSendFields is a list of field names (e.g. "PageSize") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "PageSize") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse: +// Response message for +// SearchAds360FieldService.SearchSearchAds360Fields. +type GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse struct { + // NextPageToken: Pagination token used to retrieve the next page of + // results. Pass the content of this string as the `page_token` + // attribute of the next request. `next_page_token` is not returned for + // the last page. + NextPageToken string `json:"nextPageToken,omitempty"` + + // Results: The list of fields that matched the query. + Results []*GoogleAdsSearchads360V0Resources__SearchAds360Field `json:"results,omitempty"` + + // TotalResultsCount: Total number of results that match the query + // ignoring the LIMIT clause. + TotalResultsCount int64 `json:"totalResultsCount,omitempty,string"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NextPageToken") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__SearchSearchAds360Request: Request +// message for SearchAds360Service.Search. +type GoogleAdsSearchads360V0Services__SearchSearchAds360Request struct { + // PageSize: Number of elements to retrieve in a single page. When too + // large a page is requested, the server may decide to further limit the + // number of returned resources. + PageSize int64 `json:"pageSize,omitempty"` + + // PageToken: Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request the + // next page of results. + PageToken string `json:"pageToken,omitempty"` + + // Query: Required. The query string. + Query string `json:"query,omitempty"` + + // ReturnTotalResultsCount: If true, the total number of results that + // match the query ignoring the LIMIT clause will be included in the + // response. Default is false. + ReturnTotalResultsCount bool `json:"returnTotalResultsCount,omitempty"` + + // SummaryRowSetting: 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. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Represent unknown values of return summary row. + // "NO_SUMMARY_ROW" - Do not return summary row. + // "SUMMARY_ROW_WITH_RESULTS" - Return summary row along with results. + // The summary row will be returned in the last batch alone (last batch + // will contain no results). + // "SUMMARY_ROW_ONLY" - Return summary row only and return no results. + SummaryRowSetting string `json:"summaryRowSetting,omitempty"` + + // ValidateOnly: If true, the request is validated but not executed. + ValidateOnly bool `json:"validateOnly,omitempty"` + + // ForceSendFields is a list of field names (e.g. "PageSize") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "PageSize") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__SearchSearchAds360Request) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360Request + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__SearchSearchAds360Response: Response +// message for SearchAds360Service.Search. +type GoogleAdsSearchads360V0Services__SearchSearchAds360Response struct { + // CustomColumnHeaders: The headers of the custom columns in the + // results. + CustomColumnHeaders []*GoogleAdsSearchads360V0Services__CustomColumnHeader `json:"customColumnHeaders,omitempty"` + + // FieldMask: FieldMask that represents what fields were requested by + // the user. + FieldMask string `json:"fieldMask,omitempty"` + + // NextPageToken: Pagination token used to retrieve the next page of + // results. Pass the content of this string as the `page_token` + // attribute of the next request. `next_page_token` is not returned for + // the last page. + NextPageToken string `json:"nextPageToken,omitempty"` + + // Results: The list of rows that matched the query. + Results []*GoogleAdsSearchads360V0Services__SearchAds360Row `json:"results,omitempty"` + + // SummaryRow: Summary row that contains summary of metrics in results. + // Summary of metrics means aggregation of metrics across all results, + // here aggregation could be sum, average, rate, etc. + SummaryRow *GoogleAdsSearchads360V0Services__SearchAds360Row `json:"summaryRow,omitempty"` + + // TotalResultsCount: Total number of results that match the query + // ignoring the LIMIT clause. + TotalResultsCount int64 `json:"totalResultsCount,omitempty,string"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CustomColumnHeaders") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CustomColumnHeaders") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__SearchSearchAds360Response) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360Response + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest: +// Request message for SearchAds360Service.SearchStream. +type GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest struct { + // BatchSize: The number of rows that are returned in each stream + // response batch. When too large batch is requested, the server may + // decide to further limit the number of returned rows. + BatchSize int64 `json:"batchSize,omitempty"` + + // Query: Required. The query string. + Query string `json:"query,omitempty"` + + // SummaryRowSetting: 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. + // + // Possible values: + // "UNSPECIFIED" - Not specified. + // "UNKNOWN" - Represent unknown values of return summary row. + // "NO_SUMMARY_ROW" - Do not return summary row. + // "SUMMARY_ROW_WITH_RESULTS" - Return summary row along with results. + // The summary row will be returned in the last batch alone (last batch + // will contain no results). + // "SUMMARY_ROW_ONLY" - Return summary row only and return no results. + SummaryRowSetting string `json:"summaryRowSetting,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BatchSize") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BatchSize") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse: +// Response message for SearchAds360Service.SearchStream. +type GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse struct { + // CustomColumnHeaders: The headers of the custom columns in the + // results. + CustomColumnHeaders []*GoogleAdsSearchads360V0Services__CustomColumnHeader `json:"customColumnHeaders,omitempty"` + + // FieldMask: FieldMask that represents what fields were requested by + // the user. + FieldMask string `json:"fieldMask,omitempty"` + + // RequestId: The unique id of the request that is used for debugging + // purposes. + RequestId string `json:"requestId,omitempty"` + + // Results: The list of rows that matched the query. + Results []*GoogleAdsSearchads360V0Services__SearchAds360Row `json:"results,omitempty"` + + // SummaryRow: Summary row that contains summary of metrics in results. + // Summary of metrics means aggregation of metrics across all results, + // here aggregation could be sum, average, rate, etc. + SummaryRow *GoogleAdsSearchads360V0Services__SearchAds360Row `json:"summaryRow,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CustomColumnHeaders") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CustomColumnHeaders") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// method id "searchads360.customers.customColumns.get": + +type CustomersCustomColumnsGetCall struct { + s *Service + resourceName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the requested custom column in full detail. +// +// - resourceName: The resource name of the custom column to fetch. +func (r *CustomersCustomColumnsService) Get(resourceName string) *CustomersCustomColumnsGetCall { + c := &CustomersCustomColumnsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.resourceName = resourceName + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *CustomersCustomColumnsGetCall) Fields(s ...googleapi.Field) *CustomersCustomColumnsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *CustomersCustomColumnsGetCall) IfNoneMatch(entityTag string) *CustomersCustomColumnsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *CustomersCustomColumnsGetCall) Context(ctx context.Context) *CustomersCustomColumnsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *CustomersCustomColumnsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *CustomersCustomColumnsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v0/{+resourceName}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "resourceName": c.resourceName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "searchads360.customers.customColumns.get" call. +// Exactly one of *GoogleAdsSearchads360V0Resources__CustomColumn or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleAdsSearchads360V0Resources__CustomColumn.ServerResponse.Header +// or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *CustomersCustomColumnsGetCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Resources__CustomColumn, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleAdsSearchads360V0Resources__CustomColumn{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns the requested custom column in full detail.", + // "flatPath": "v0/customers/{customersId}/customColumns/{customColumnsId}", + // "httpMethod": "GET", + // "id": "searchads360.customers.customColumns.get", + // "parameterOrder": [ + // "resourceName" + // ], + // "parameters": { + // "resourceName": { + // "description": "Required. The resource name of the custom column to fetch.", + // "location": "path", + // "pattern": "^customers/[^/]+/customColumns/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v0/{+resourceName}", + // "response": { + // "$ref": "GoogleAdsSearchads360V0Resources__CustomColumn" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/doubleclicksearch" + // ] + // } + +} + +// method id "searchads360.customers.customColumns.list": + +type CustomersCustomColumnsListCall struct { + s *Service + customerId string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Returns all the custom columns associated with the customer in +// full detail. +// +// - customerId: The ID of the customer to apply the CustomColumn list +// operation to. +func (r *CustomersCustomColumnsService) List(customerId string) *CustomersCustomColumnsListCall { + c := &CustomersCustomColumnsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.customerId = customerId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *CustomersCustomColumnsListCall) Fields(s ...googleapi.Field) *CustomersCustomColumnsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *CustomersCustomColumnsListCall) IfNoneMatch(entityTag string) *CustomersCustomColumnsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *CustomersCustomColumnsListCall) Context(ctx context.Context) *CustomersCustomColumnsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *CustomersCustomColumnsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *CustomersCustomColumnsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v0/customers/{+customerId}/customColumns") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "customerId": c.customerId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "searchads360.customers.customColumns.list" call. +// Exactly one of +// *GoogleAdsSearchads360V0Services__ListCustomColumnsResponse or error +// will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleAdsSearchads360V0Services__ListCustomColumnsResponse.ServerResp +// onse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *CustomersCustomColumnsListCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__ListCustomColumnsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleAdsSearchads360V0Services__ListCustomColumnsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns all the custom columns associated with the customer in full detail.", + // "flatPath": "v0/customers/{customersId}/customColumns", + // "httpMethod": "GET", + // "id": "searchads360.customers.customColumns.list", + // "parameterOrder": [ + // "customerId" + // ], + // "parameters": { + // "customerId": { + // "description": "Required. The ID of the customer to apply the CustomColumn list operation to.", + // "location": "path", + // "pattern": "^[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v0/customers/{+customerId}/customColumns", + // "response": { + // "$ref": "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/doubleclicksearch" + // ] + // } + +} + +// method id "searchads360.customers.searchAds360.search": + +type CustomersSearchAds360SearchCall struct { + s *Service + customerId string + googleadssearchads360v0services__searchsearchads360request *GoogleAdsSearchads360V0Services__SearchSearchAds360Request + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Search: Returns all rows that match the search query. List of thrown +// errors: AuthenticationError () [AuthorizationError]() HeaderError () +// [InternalError]() QueryError () [QuotaError]() RequestError () +// +// - customerId: The ID of the customer being queried. +func (r *CustomersSearchAds360Service) Search(customerId string, googleadssearchads360v0services__searchsearchads360request *GoogleAdsSearchads360V0Services__SearchSearchAds360Request) *CustomersSearchAds360SearchCall { + c := &CustomersSearchAds360SearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.customerId = customerId + c.googleadssearchads360v0services__searchsearchads360request = googleadssearchads360v0services__searchsearchads360request + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *CustomersSearchAds360SearchCall) Fields(s ...googleapi.Field) *CustomersSearchAds360SearchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *CustomersSearchAds360SearchCall) Context(ctx context.Context) *CustomersSearchAds360SearchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *CustomersSearchAds360SearchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *CustomersSearchAds360SearchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googleadssearchads360v0services__searchsearchads360request) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v0/customers/{+customerId}/searchAds360:search") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "customerId": c.customerId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "searchads360.customers.searchAds360.search" call. +// Exactly one of +// *GoogleAdsSearchads360V0Services__SearchSearchAds360Response or error +// will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleAdsSearchads360V0Services__SearchSearchAds360Response.ServerRes +// ponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *CustomersSearchAds360SearchCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__SearchSearchAds360Response, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleAdsSearchads360V0Services__SearchSearchAds360Response{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", + // "flatPath": "v0/customers/{customersId}/searchAds360:search", + // "httpMethod": "POST", + // "id": "searchads360.customers.searchAds360.search", + // "parameterOrder": [ + // "customerId" + // ], + // "parameters": { + // "customerId": { + // "description": "Required. The ID of the customer being queried.", + // "location": "path", + // "pattern": "^[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v0/customers/{+customerId}/searchAds360:search", + // "request": { + // "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Request" + // }, + // "response": { + // "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Response" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/doubleclicksearch" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *CustomersSearchAds360SearchCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V0Services__SearchSearchAds360Response) error) error { + c.ctx_ = ctx + defer func(pt string) { c.googleadssearchads360v0services__searchsearchads360request.PageToken = pt }(c.googleadssearchads360v0services__searchsearchads360request.PageToken) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.googleadssearchads360v0services__searchsearchads360request.PageToken = x.NextPageToken + } +} + +// method id "searchads360.customers.searchAds360.searchStream": + +type CustomersSearchAds360SearchStreamCall struct { + s *Service + customerId string + googleadssearchads360v0services__searchsearchads360streamrequest *GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SearchStream: Returns all rows that match the search stream query. +// List of thrown errors: AuthenticationError () [AuthorizationError]() +// HeaderError () [InternalError]() QueryError () [QuotaError]() +// RequestError () +// +// - customerId: The ID of the customer being queried. +func (r *CustomersSearchAds360Service) SearchStream(customerId string, googleadssearchads360v0services__searchsearchads360streamrequest *GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest) *CustomersSearchAds360SearchStreamCall { + c := &CustomersSearchAds360SearchStreamCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.customerId = customerId + c.googleadssearchads360v0services__searchsearchads360streamrequest = googleadssearchads360v0services__searchsearchads360streamrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *CustomersSearchAds360SearchStreamCall) Fields(s ...googleapi.Field) *CustomersSearchAds360SearchStreamCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *CustomersSearchAds360SearchStreamCall) Context(ctx context.Context) *CustomersSearchAds360SearchStreamCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *CustomersSearchAds360SearchStreamCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *CustomersSearchAds360SearchStreamCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googleadssearchads360v0services__searchsearchads360streamrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v0/customers/{+customerId}/searchAds360:searchStream") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "customerId": c.customerId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "searchads360.customers.searchAds360.searchStream" call. +// Exactly one of +// *GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse.Ser +// verResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *CustomersSearchAds360SearchStreamCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns all rows that match the search stream query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", + // "flatPath": "v0/customers/{customersId}/searchAds360:searchStream", + // "httpMethod": "POST", + // "id": "searchads360.customers.searchAds360.searchStream", + // "parameterOrder": [ + // "customerId" + // ], + // "parameters": { + // "customerId": { + // "description": "Required. The ID of the customer being queried.", + // "location": "path", + // "pattern": "^[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v0/customers/{+customerId}/searchAds360:searchStream", + // "request": { + // "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamRequest" + // }, + // "response": { + // "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360StreamResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/doubleclicksearch" + // ] + // } + +} + +// method id "searchads360.searchAds360Fields.get": + +type SearchAds360FieldsGetCall struct { + s *Service + resourceName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns just the requested field. List of thrown errors: +// AuthenticationError () [AuthorizationError]() HeaderError () +// [InternalError]() QuotaError () [RequestError]() +// +// - resourceName: The resource name of the field to get. +func (r *SearchAds360FieldsService) Get(resourceName string) *SearchAds360FieldsGetCall { + c := &SearchAds360FieldsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.resourceName = resourceName + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SearchAds360FieldsGetCall) Fields(s ...googleapi.Field) *SearchAds360FieldsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *SearchAds360FieldsGetCall) IfNoneMatch(entityTag string) *SearchAds360FieldsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SearchAds360FieldsGetCall) Context(ctx context.Context) *SearchAds360FieldsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SearchAds360FieldsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SearchAds360FieldsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v0/{+resourceName}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "resourceName": c.resourceName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "searchads360.searchAds360Fields.get" call. +// Exactly one of *GoogleAdsSearchads360V0Resources__SearchAds360Field +// or error will be non-nil. Any non-2xx status code is an error. +// Response headers are in either +// *GoogleAdsSearchads360V0Resources__SearchAds360Field.ServerResponse.He +// ader or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *SearchAds360FieldsGetCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Resources__SearchAds360Field, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleAdsSearchads360V0Resources__SearchAds360Field{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns just the requested field. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()", + // "flatPath": "v0/searchAds360Fields/{searchAds360FieldsId}", + // "httpMethod": "GET", + // "id": "searchads360.searchAds360Fields.get", + // "parameterOrder": [ + // "resourceName" + // ], + // "parameters": { + // "resourceName": { + // "description": "Required. The resource name of the field to get.", + // "location": "path", + // "pattern": "^searchAds360Fields/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v0/{+resourceName}", + // "response": { + // "$ref": "GoogleAdsSearchads360V0Resources__SearchAds360Field" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/doubleclicksearch" + // ] + // } + +} + +// method id "searchads360.searchAds360Fields.search": + +type SearchAds360FieldsSearchCall struct { + s *Service + googleadssearchads360v0services__searchsearchads360fieldsrequest *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Search: Returns all fields that match the search query. List of +// thrown errors: AuthenticationError () [AuthorizationError]() +// HeaderError () [InternalError]() QueryError () [QuotaError]() +// RequestError () +func (r *SearchAds360FieldsService) Search(googleadssearchads360v0services__searchsearchads360fieldsrequest *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest) *SearchAds360FieldsSearchCall { + c := &SearchAds360FieldsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.googleadssearchads360v0services__searchsearchads360fieldsrequest = googleadssearchads360v0services__searchsearchads360fieldsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SearchAds360FieldsSearchCall) Fields(s ...googleapi.Field) *SearchAds360FieldsSearchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SearchAds360FieldsSearchCall) Context(ctx context.Context) *SearchAds360FieldsSearchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SearchAds360FieldsSearchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SearchAds360FieldsSearchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googleadssearchads360v0services__searchsearchads360fieldsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v0/searchAds360Fields:search") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "searchads360.searchAds360Fields.search" call. +// Exactly one of +// *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse.Ser +// verResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *SearchAds360FieldsSearchCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns all fields that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", + // "flatPath": "v0/searchAds360Fields:search", + // "httpMethod": "POST", + // "id": "searchads360.searchAds360Fields.search", + // "parameterOrder": [], + // "parameters": {}, + // "path": "v0/searchAds360Fields:search", + // "request": { + // "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest" + // }, + // "response": { + // "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/doubleclicksearch" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *SearchAds360FieldsSearchCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse) error) error { + c.ctx_ = ctx + defer func(pt string) { c.googleadssearchads360v0services__searchsearchads360fieldsrequest.PageToken = pt }(c.googleadssearchads360v0services__searchsearchads360fieldsrequest.PageToken) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.googleadssearchads360v0services__searchsearchads360fieldsrequest.PageToken = x.NextPageToken + } +}